-
This post is the continuation of the previous part The impact of High Clustering Factor on elapsed time, SGA and CPU This time let’s try to quantify the usage of the resources applying much broader index range scan.I’ll force retrieving 10% (1 million) of rows and will pay close attention to :– Elapsed times with…
-
This post is the continuation of the previous part. Clustering Factor – tests with 10046 Let’s go through the cases represented by SELECT statements and examine the true effort measured with the number of physical reads which are hidden behind a query retrieving its data from the table, yet by the means of either one:…
-
This post is the continuation of the previous part. Clustering Factor – tests with block dumps My test environment comprises a table with 10 million rows and three columns with two indexes:– ID_SORTED (unique, generated as sorted) with the index on it– ID_MESS (almost unique, generated as scattered) with the index on it– PAD (filler…
-
Clustering Factor – introduction Some time ago I wrote a post diving into, what I like to call the “younger siblings” of Clustering Factor (aka CLUF – this is how it’s called in the 10053 trace): I mean: AVG_DATA_BLOCKS_PER_KEY and AVG_LEAF_BLOCKS_PER_KEY.While they represent close relationship to Clustering Factor, the CLUF tends to be more recognized…
-
Resp: you might have spotted it “here and there” in the 10053 trace file.It may turn out important if, for example, all of sudden your SQL similar to the one below starts running in parallel (of what you may not be aware straight away), visibly slower – and most of all wasting I/O and CPU…
-
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 characteristics of Cartesian Join.It will…
-
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,…
-
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 close the end of this post).That post is in turn an attempt to present in the structured way of achieving…
-
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…
