Where’s the “Go Faster” switch?

Oracle has been around for over 25 years and I’ve been working with it for over 10 of them, but I still haven’t found the “Go Faster” switch. Now either I’m not too clever, or this switch doesn’t actually exist. If the latter is true, why is it people ask me questions about tuning and don’t like the answer when I suggest they need to do some work to solve the problem?

People generally don’t want to hear they have to trace the slow process so they can see what statements are executed and check out the execution plans and waits associated with the statements. The don’t want to run the profiler to see which bits of procedural logic are taking the most time. They just want a switch to flick to make everything better. For this reason I’m going to raise an enhancement request for the following statement to be supported:

ALTER SYSTEM SET go_faster=TRUE;

I don’t care that it does nothing. I just want it to give the “System altered.” message. Then the next time I have someone looking for a shortcut I can say, just flick the GO_FASTER switch and tell you boss everything will be OK.

Cheers

Tim…

PS. I would prefer this parameter to remain undocumented and unsupported, since that seems to add to the mystique πŸ™‚

FC6 Draft Articles…

I’ve written a couple of draft installation articles for DB10g R2 and AS10g R3 on Fedora Core 6 (Test 2).

I’ll revisit the articles once the final version of FC6 is released. I’m hoping the warning at the start of the articles prevents a repeat of the FC5 incident. πŸ™‚

As expected, FC6 has diverged even further from RHEL4. There are a bunch of packages that either don’t exist or are deprecated. The software seems to work OK, but I’m not sure how many problems are waiting in the wings. It will be interesting to see how Oracle and RHEL5 get on together, especially where RAC is concerned.

Cheers

Tim…

Hallelujah…

OK. It’s been a long wait, but 10g Release 2 is now available for Tru64. There is still no sign of the 10.1.0.4 or 10.1.0.5 patches, but you can’t have everything. Of course, the big issue now is, how can I persuade the company to go for a migration???
This is definitely the last release for Tru64, so we’ve got to move to it, but who knows when?

Cheers

Tim…

Oracle ACE of the Year…

I got home last night to find a message on my phone trying to arrange an interview for Oracle Magazine about being “Oracle ACE of the Year”. Needless to say this was a bit of a shock, since it was the first thing I’d heard about it.

It seems Oracle Magazine had already contacted me about it, but either my spam filter had deleted the message, or I deleted it without reading it. πŸ™

Anyway, I did the interview later that night and I’ve got to have a photo taken for the magazine. The profile and photo will be in the November/December issue of Oracle Magazine.

This year has been totally mad. First I get nominated as an ACE, then this. It’s all a bit scary and humbling.

This award went to Mark Rittman last year, so I expect him to pass on the sash and tiara in November. I’ll try not to do a Gwyneth Paltrow. πŸ™‚

Cheers

Tim…

Rules Manager (tip of the iceberg)…

I’ve been having a play with the Rules Manager introduced in Oracle 10g Release 2. There is quite a bit of functionality in there, so my article is just a “tip of the iceberg” type of thing.

This would have come in extremely handy in two previous jobs, both of which required quite complex state-event engines. It certainly would have made the decision processes a little more flexible, provided the performance was acceptable.

Cheers

Tim…

Loading LOB Data Using SQL*Loader…

In a recent post I discussed the use of BLOBs and External Tables. As a result of that I thought I better take a look at how SQL*Loader copes with LOBs, so I wrote Loading LOB Data Using SQL*Loader. SQL*Loader has a number of methods for loading LOBs, but I focussed on the one that most closely matches the method used by external tables.

Cheers

Tim…

A Tale of 4 Schedulers…

A long time ago in a galaxy far, far away, there was only one Oracle scheduler. It was managed using the DBMS_JOB package and the job information was stored in a single table.

SELECT table_name
FROM   dba_tables
WHERE  owner = 'SYS'
AND    table_name LIKE 'JOB$%'
ORDER BY table_name;

TABLE_NAME
------------------------------
JOB$

1 row selected.

SQL>

Information about scheduled jobs was available from the “DBA_JOBS%” views.

SELECT view_name
FROM   dba_views
WHERE  owner = 'SYS'
AND    view_name LIKE 'DBA_JOBS%'
ORDER BY view_name;

VIEW_NAME
------------------------------
DBA_JOBS
DBA_JOBS_RUNNING

2 rows selected.

SQL>

Oracle 10g introduced a new scheduler that was managed using the DBMS_SCHEDULER package, whose job information was stored in the “SCHEDULER$%” tables.

SELECT table_name
FROM   dba_tables
WHERE  owner = 'SYS'
AND    table_name LIKE 'SCHEDULER$%'
ORDER BY table_name;

TABLE_NAME
------------------------------
SCHEDULER$_CHAIN
.
.
.
SCHEDULER$_WINGRP_MEMBER

22 rows selected.

SQL>

Information about scheduled jobs for this new scheduler was available from the “DBA_SCHEDULER%” views.

SELECT view_name
FROM   dba_views
WHERE  owner = 'SYS'
AND    view_name LIKE 'DBA_SCHEDULER%'
ORDER BY view_name;

VIEW_NAME
------------------------------
DBA_SCHEDULER_CHAINS
.
.
.
DBA_SCHEDULER_WINGROUP_MEMBERS

19 rows selected.

SQL>

In addition to the two internal schedulers, the OEM 10g DBConsole had its own scheduler, which stored job information in the “MGMT_JOB%” tables.

SELECT table_name
FROM   dba_tables
WHERE  owner = 'SYSMAN'
AND    table_name LIKE 'MGMT_JOB%'
ORDER BY table_name;

TABLE_NAME
------------------------------
MGMT_JOB
.
.
.
MGMT_JOB_VALUE_PARAMS

44 rows selected.

SQL>

To confuse matters further, the OEM 10g Grid Control repository had a similar scheduler to OEM 10g DBConsole, but with a few extra tables.

SELECT table_name
FROM   dba_tables
WHERE  owner = 'SYSMAN'
AND    table_name LIKE 'MGMT_JOB%'
ORDER BY table_name;

TABLE_NAME
------------------------------
MGMT_JOB
.
.
.
MGMT_JOB_VALUE_PARAMS

53 rows selected.

SQL>

Faced with the choice of four ways to schedule a job, most DBAs called “Tim Hall” decided to pick a single scheduler and keep things simple πŸ™‚

Cheers

Tim…

PS. Don’t even get me started on OS schedulers and the Oracle Applications scheduler… πŸ˜‰