Disjunction (logical OR) is known to cause various performance problems, from extreme parse times (e.g. here) to sub-optimal plans. A common solution to such problems is getting rid of OR’s by “OR expansion” (i.e. rewrite via UNION ALL), although it doesn’t work in 100% cases. In this post, I will consider an example of an OR problem that can be solved differently.
Here is the setup:
The next part of the video tutorial explaining the XPLAN_ASH Active Session History functionality has been published. In this part I begin the actual walk-through of the script output.
More parts to follow.
A new version 4.21 of the XPLAN_ASH utility is available for download. I publish this version because it will be used in the recent video tutorials explaining the Active Session History functionality of the script.
This is mainly a maintenance release that fixes some incompatibilities of the 4.2 version with less recent versions (10.2 and 22.214.171.124).
Companies using Oracle's database engine to support their enterprise application and information storage needs should consider consulting Oracle experts to help them patch a bug that could allow infiltrators to completely take over their systems.
During installing database software, user is prompted to enter names of various operating system groups mapping to various administrative privileges (SYSDBA, SYSOPER, SYSBACKUP, SYSKM, SYSDG). One might map one operating system group to multiple administrative privileges if role separation is not desired. In case the need for role separation arises later, the mapping can be specified by updating $ORACLE_HOME/rdbms/lib/config.c file and then relinking it. This post explains the various steps.
In my previous post I mentioned method R as probably the most efficient approach to SQL optimization. However, it is important to focus on correct metrics for it to work correctly.
Consider this example (once again, the query is still running, so the only reliable diagnostic tool at our disposal is SQL real-time monitor):
This is a common problem I have and I never write it down (except now). For example, today I wanted to know what the valid parameters for _serial_direct_read were:
SQL> select * from v$parameter_valid_values where name ='_serial_direct_read'; no rows selected
OK so if Oracle doesn’t tell me then maybe I can work it out? Getting the view_text has worked in the past:
I'm very happy to announce that Acorn publisher in South Korea did huge amount of work in translating and publishing my "Reverse Engineering for Beginners" book in Korean language.