Some Oracle features are so useful you quickly get to a point where you can’t remember what life was like before them. Three that spring to mind today are the DBA_SCHEDULER_JOB_RUN_DETAILS view, the DBMS_MONITOR package and the DBMS_METADATA package.
When using the new 10g scheduler, the DBA_SCHEDULER_JOB_RUN_DETAILS view provides a history of previous job runs. It’s cool to query this and see how the run duration of particular jobs varies during the course of the day, or between days, allowing you to do trend analysis over time. It’s not rocket science to store this information in a table yourself, but it’s nice that it happens straight out of the box.
The DBMS_MONITOR package is part of the end-to-end tracing available in 10g. It allows you to initiate tracing for one or more sessions, where the sessions are identified using combinations of criteria including: service, module, action, client_identifier or just the plain old sid. The really cool thing about this is that it doesn’t matter how many sessions match the criteria, or which RAC nodes they are running on, they all get traced. You can then consolidate all the trace files into a single file using the trcsess utility so you can use TKPROF as normal. This is way cool!
The DBMS_METADATA package was introduced in Oracle9i to allow you to extract DDL or XML definitions of database objects. Most tools like PL/SQL Developer and TOAD allow you to do this easily, but from the server it was always a pain. I used to spend ages writing and maintaining scripts to do this, and invariably they didn’t work for some features. This package threw all that out of the window. Today a friend asked me how he could dump out a schema creation script and I was in the middle of explaining about DBMS_METADATA when I remembered he works on 8i. Bummer…
I use these things all the time so the thought of moving back to 8i or 9i fills me with dread!
Someone mentioned recently that Oracle 11(xyz) is scheduled for release in November next year. That sounds a little early, but if it’s true I wonder how long it will be before I’m saying, “I’d rather quit than work with Oracle 10g!” 🙂