-
Analysis of joins with 10053 CBO trace This post continues from the previous one diving deeper into the challenges posed by a suboptimal SQL query that led the optimizer to select a Cartesian Join combined with an overly expensive Hash Join.But do not treat its content as limited to just a Cartesian Join.It will also…
-
Cartesian Join and Hash Join – Bonnie & Clyde “This movie is based on true story” Some time ago, I was approached to provide a solution to a performance issue.To illustrate this case, I will later simulate the scenario highlighting the critical aspects and providing a detailed explanation of the underlying causes.For now, let me…
-
One day, while browsing publicly available resources (blogs, white papers), I realized there’s a lack of easily accessible information on the following topic: How to map the cost-based optimizer (CBO) formulas and numbers to the SQL Plan for the most basic scenario — comparing index range scan access vs. full table scan. As we know,…
-
Note – this post is still not finished, so be prepared for a little mess .. Over time oradebug became an extremely powerful tool, yet there is no official documentation available apart of contextual help (sourced from SQL> oradebug doc).Good news, there are several good blogs mitigating that deficiency (see the list at the end of…
-
Note: this is the continuation of the previous post. The natural question arises: how can I set a trap for any specific SQL_ID which causes issues. Update: near the end of this part3 I have also included some immediate solutions to mitigate the problem supported by two other posts. The goal is to intercept an…
-
Note: this is continuation of the previous post. Now, let’s finally simulate my problem. To do that, I will force reading the table into the SGA.To remain fair, I won’t cache it entirely.Why am I considering it a “fair” approach?It’s hard to expect, after having executed your query that the entire large table, say 200GB…
-
This post contains 3 parts. Recently I witnessed an interesting case which added a headache to the application owners and the business.Namely, one of the important reports which used to run smoothly all of sudden stopped behaving.Talking numbers, something what people used to get within some seconds (up to 8) unexpectedly took close to 2…
-
You surely came across these two columns while going through DBA_% or Oracle documentation. AVG_LEAF_BLOCKS_PER_KEYAVG_DATA_BLOCKS_PER_KEY They are to be spotted “here and there”. I bet though you may tend to skip them as not important or.. not really well understood, so not important.I will make an attempt to demystify them and show how valuable they…
-
Have you ever been in need to examine the current level of utilization of FC HBA I/O channel on Linux? So, is your environment more or less following –Your linux boxes are attached to some High End Storage infrastructure to which you have no access?The above implies that the organization you’re in presents clear separation…
-
Boost your SQL query without even running it I had a SQL query to optimize that was heavily relying on the TEMP tablespace due to multiple HASH JOINs and aggregations. The session quickly exhausted its allotted PGA memory, pushing the joins to disk after just a few seconds. Since this query was used for large-scale…
