Just a quick comment about something I noticed while rebuilding a test VM on my Mac. There is a long lead up to this, so bear with me…
I use VirtualBox on three different host operating systems.
Mac : My main desktop is a Mac, so most of my tests are done using Oracle 12c on Oracle Linux 6 or 7, running under VirtualBox. Most of the VMs I use are quite old, but I keep the DB and OS patched, and you know I religiously update VirtualBox. The point is, I rarely do fresh installations on Mac.
Here’s a live one from OTN – here are a couple of extracts from the problem statement:
We’re experiencing an issue where it seems that the query plan changes from day to day for a particular procedure that runs once a night.
It’s resulting in a performance variance of 10 second completion time vs 20 minutes (nothing in between).
It started occurring about 2 months ago and now it’s becoming more prevalent where the bad query plan is coming up more often.
I noticed that the query plans vary for a simple query.
We do run gather statistics every night. (DBMS_STATS.GATHER_SCHEMA_STATS (ownname=>sys_context( ‘userenv’, ‘current_schema’ ), estimate_percent => 1);)
The query and two execution plans look like this:
(warning: this is a rather detailed technical post on the internal working of the Oracle database’s commit interactions between the committing foreground processes and the log writer)
After the Trivadis Performance days I was chatting to Jonathan Lewis. I presented my Profiling the log writer and database writer presentation, in which I state the foreground (user/server) process looks at the commit SCN in order to determine if its logbuffer contents are written to disk by the logwriter(s). Jonathan suggested looking deeper into this matter, because looking at the commit SCN might not the way it truly works.
MoS has a number of “Master Note” documents which pop up from time to time while I’m checking for known problems or solutions; they get extended from time to time (and, conversely, link to some articles which are clearly no longer relevant to current versions). This is just a tidied up list of a few of the master notes that I’ve jotted down over time. The Data Dictionary overview appeared in my daily “Hot Topics” report today, and that prompted me to publish the list I’d got so far.
Following on from the last post, I’ve brought my NFS RAC stuff up to date also.
I noticed I had not done a RAC install using NFS on Oracle Linux 6, so I threw that in for good measure too.
Following on from my earlier posting of problems with temporary table and the PL/SQL result cache (a combination which the manuals warn you against) here’s another problem – again, to a large degree, self-inflicted.
Imagine you have a complex report involving a large number of financial transactions with a need to include calculations about current exchange rates. Unfortunately the rules about calculating the appropriate exchange rate for any transaction are complex and you find you have a choice between adding 6 tables with outer joins and a couple of aggregate (max) subqueries to the base query or calling a PL/SQL function to calculate the exchange rate for each row. I’m going to create an extremely simplified model of this requirement:
This posting covers the Middleware Management sessions at OOW2015. Note that these are middleware management via Enterprise Manager, as opposed to sessions specifically covering middleware features and functions. Also, I have not duplicated here sessions I have already documented under Oracle Management Cloud or Private Cloud / DBLM, so please visit those posts for sessions that fall under both categories. The following sessions fall under this category:
This posting covers the Database Manageability sessions at OOW2015. Note that these are database manageability via Enterprise Manager, as opposed to sessions specifically covering database features and functions. The following sessions fall under this category: