Comments on: How many ways ?
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/
Just another Oracle weblogFri, 02 Dec 2016 15:09:06 +0000hourly1http://wordpress.com/By: Meaningless Keys « Oracle Scratchpad
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-909
Fri, 29 Dec 2006 18:21:50 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-909[…] Pragmatic solution – put a stack of hints into the SQL. […]
]]>By: in praise of CBO » Andy C
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-418
Mon, 11 Dec 2006 21:49:14 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-418[…] Jonathan Lewis poses a very interesting question: Have you ever wondered how hard the optimizer has to work to produce a plan ? […]
]]>By: Jonathan Lewis
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-417
Mon, 11 Dec 2006 16:48:05 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-417Jason, I can’t say. But I suspect the idea is that bitmap conversion should make and-equal redundant, since (a) it isn’t restricted to equality on single-column indexes and (b) it isn’t restricted to the arbitrary limit that and-equal has of five indexes. Unfortunately, bitmap indexes and the bitmap conversion are not available if you’re running Standard Edition.
]]>By: Jason Bucata
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-416
Mon, 11 Dec 2006 16:14:15 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-416So what replaces AND_EQUAL in 10g+??
]]>By: Jonathan Lewis
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-413
Mon, 11 Dec 2006 10:16:51 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-413Joachim, if you check carefully you will see that the initial specification said: “where each table has a few b-tree indexes” deliberately excluding bitmaps. Then the join mechanism I mentioned was: “and bitmap conversion – for a total of 6”.
You are perhaps not familiar with the fact that the optimizer can do a btree/bitmap conversion even in the complete absence of any bitmap indexes.
]]>By: Joachim Rupik
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-412
Mon, 11 Dec 2006 09:02:24 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-412Jonathan, Yes I know, but please notice when bitmaps are not available won’t be taken into consideration any bitmap operation – that is a kind of a clever mechanisms for minimizing the work.
]]>By: Jonathan Lewis
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-410
Mon, 11 Dec 2006 08:09:27 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-410Joachim, On the contrary, nothing is naturally excluded. Things are excluded because the optimizer does the arithmetic that excludes them and, as I pointed out, it “has all sorts of clever mechanisms for minimising the work”.
See Chapter 14 of Cost Based Oracle Fundamentals for a few examples of the clever mechanisms.
]]>By: Joachim Rupik
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-409
Mon, 11 Dec 2006 07:49:59 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-409Jonathan, please consider that not all cases are available in real life, some combinations are naturally excluded by remaining parts of sql statement, object configuration and available statistics, what makes a number of permutations much smaller, however big enough to cost much.
]]>By: Jonathan Lewis
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-404
Sun, 10 Dec 2006 15:05:43 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-404Jaffar, I had to be running the 10053 to determine how many join orders the optimizer examined – so I did check that the parameter was set to 2,000 at the same time.
]]>By: Jaffar
https://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-403
Sun, 10 Dec 2006 14:53:29 +0000http://jonathanlewis.wordpress.com/2006/12/09/how-many-ways/#comment-403Jonathan, if I remember correctly, when we enable 10053 event, the trace gives the list parameters and their values used by the Optimizer and you see this parameter as well.
Have you try to enable the 10053 event on your example to find out what is the value for this parameter?
I am just curious becuase its a special case.