<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Index Join</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2010/11/22/index-join/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Fri, 24 May 2013 13:27:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37911</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sat, 27 Nov 2010 19:07:29 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37911</guid>
		<description><![CDATA[Antonio,

I think the bytes column is supposed to be the bytes produced in the rowsource that will be passed up to the parent, so it should include the bytes for the rowid.]]></description>
		<content:encoded><![CDATA[<p>Antonio,</p>
<p>I think the bytes column is supposed to be the bytes produced in the rowsource that will be passed up to the parent, so it should include the bytes for the rowid.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #207, A Carnival of the Vanities for DBAs &#124; The Pythian Blog</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37894</link>
		<dc:creator><![CDATA[Log Buffer #207, A Carnival of the Vanities for DBAs &#124; The Pythian Blog]]></dc:creator>
		<pubDate>Fri, 26 Nov 2010 15:40:30 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37894</guid>
		<description><![CDATA[[...] very lucid, reproducible example about Index Joins has been put on display by Jonathan Lewis. It&#8217;s a compact introduction about Index Joins, which are also known as Index Hash [...]]]></description>
		<content:encoded><![CDATA[<p>[...] very lucid, reproducible example about Index Joins has been put on display by Jonathan Lewis. It&#8217;s a compact introduction about Index Joins, which are also known as Index Hash [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: lascoltodelvenerdi</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37888</link>
		<dc:creator><![CDATA[lascoltodelvenerdi]]></dc:creator>
		<pubDate>Thu, 25 Nov 2010 10:24:52 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37888</guid>
		<description><![CDATA[Jonathan,

I&#039;m thinking about the sentence &quot;...total data volume expected from line 3 is slightly larger than the total data volume from line 4 where we extract only the rowid...&quot;

If we look at the Projection Information you are right, but I think that in this scenario Oracle is saying something like &quot;fast full scan of the index costs me 36 bytes, then of this 36 I take only the ROWID&quot; that is: in a fast full scan Oracle do something like a full table scan so it reads all the index&#039;s column(s) even if they are not needed and then selects only what really need (the Projection Information).
So in this case Bytes (column from the plan) and the Projection Information can be a bit &quot;unrelated&quot;.

What you think of my idea?

Bye,
Antonio]]></description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>I&#8217;m thinking about the sentence &#8220;&#8230;total data volume expected from line 3 is slightly larger than the total data volume from line 4 where we extract only the rowid&#8230;&#8221;</p>
<p>If we look at the Projection Information you are right, but I think that in this scenario Oracle is saying something like &#8220;fast full scan of the index costs me 36 bytes, then of this 36 I take only the ROWID&#8221; that is: in a fast full scan Oracle do something like a full table scan so it reads all the index&#8217;s column(s) even if they are not needed and then selects only what really need (the Projection Information).<br />
So in this case Bytes (column from the plan) and the Projection Information can be a bit &#8220;unrelated&#8221;.</p>
<p>What you think of my idea?</p>
<p>Bye,<br />
Antonio</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37879</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 18:48:31 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37879</guid>
		<description><![CDATA[Henish,

This is &quot;just&quot; the usual arithmetic problem that the optimizer has with dependent columns. You can see that the two columns are perfectly correlated and that the query is asking for a given overlap. The optimizer sees only that we have two columns that are each asking for 1/30th of the data so, ignoring some of the fiddly bits it&#039;s arithmetic is &quot;total_rows * 1/30 * 1/30&quot; (which isn&#039;t 3, but it&#039;s a lot closer than the 50 you&#039;re expecting.]]></description>
		<content:encoded><![CDATA[<p>Henish,</p>
<p>This is &#8220;just&#8221; the usual arithmetic problem that the optimizer has with dependent columns. You can see that the two columns are perfectly correlated and that the query is asking for a given overlap. The optimizer sees only that we have two columns that are each asking for 1/30th of the data so, ignoring some of the fiddly bits it&#8217;s arithmetic is &#8220;total_rows * 1/30 * 1/30&#8243; (which isn&#8217;t 3, but it&#8217;s a lot closer than the 50 you&#8217;re expecting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henish</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37876</link>
		<dc:creator><![CDATA[Henish]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 14:58:01 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37876</guid>
		<description><![CDATA[Hi Jonathon,


Nice article just a quick question why the rows column of the execution plan show 3 row in the final step (i.e. id=0)
it should be 50 right (or at least close to 50 if there is some arithmetics error)? 

OR am i missing something?


Many Thanks]]></description>
		<content:encoded><![CDATA[<p>Hi Jonathon,</p>
<p>Nice article just a quick question why the rows column of the execution plan show 3 row in the final step (i.e. id=0)<br />
it should be 50 right (or at least close to 50 if there is some arithmetics error)? </p>
<p>OR am i missing something?</p>
<p>Many Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37871</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 10:22:42 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37871</guid>
		<description><![CDATA[Greg,

It might appear this evening while I&#039;m waiting in Heathrow airport for a flight to Geneva, or it might appear on Friday evening while I&#039;m waiting in Geneva airport for a flight home - but it will be here soon.  (And then there are two more articles I could write on the topic.)

As I said at the time - it was a good question.

]]></description>
		<content:encoded><![CDATA[<p>Greg,</p>
<p>It might appear this evening while I&#8217;m waiting in Heathrow airport for a flight to Geneva, or it might appear on Friday evening while I&#8217;m waiting in Geneva airport for a flight home &#8211; but it will be here soon.  (And then there are two more articles I could write on the topic.)</p>
<p>As I said at the time &#8211; it was a good question.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Grzegorz Goryszewski</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37866</link>
		<dc:creator><![CDATA[Grzegorz Goryszewski]]></dc:creator>
		<pubDate>Wed, 24 Nov 2010 08:11:40 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37866</guid>
		<description><![CDATA[Thanks Jonathan for picking this up :).
Can&#039;t wait for second part .
BTW It was my question .
Regards.
Greg]]></description>
		<content:encoded><![CDATA[<p>Thanks Jonathan for picking this up :).<br />
Can&#8217;t wait for second part .<br />
BTW It was my question .<br />
Regards.<br />
Greg</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37863</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Tue, 23 Nov 2010 08:02:15 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37863</guid>
		<description><![CDATA[Amir,

There are no histograms on the columns. It&#039;s a question worth asking because it might (in theory) make some sort of difference. In fact all three columns are uniformly distributed (rownum) with no gaps in the range, so Oracle&#039;s analysis of the data in its default &quot;gather stats&quot; calls shouldn&#039;t produce histograms.

Another point about stats, though, is that I&#039;ve disabled CPU costing (system statistics) to make the results as consistent as possible across different versions of Oracle - and you might wonder whether CPU costing would be enough to switch the order of the join.]]></description>
		<content:encoded><![CDATA[<p>Amir,</p>
<p>There are no histograms on the columns. It&#8217;s a question worth asking because it might (in theory) make some sort of difference. In fact all three columns are uniformly distributed (rownum) with no gaps in the range, so Oracle&#8217;s analysis of the data in its default &#8220;gather stats&#8221; calls shouldn&#8217;t produce histograms.</p>
<p>Another point about stats, though, is that I&#8217;ve disabled CPU costing (system statistics) to make the results as consistent as possible across different versions of Oracle &#8211; and you might wonder whether CPU costing would be enough to switch the order of the join.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amir Riaz</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/22/index-join/#comment-37862</link>
		<dc:creator><![CDATA[Amir Riaz]]></dc:creator>
		<pubDate>Tue, 23 Nov 2010 06:17:49 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4844#comment-37862</guid>
		<description><![CDATA[Jonathon,

Do we have histograms on these columns,  Also i would like to see the result with oracle 11g column statistics. 

Regards
Amir Riaz]]></description>
		<content:encoded><![CDATA[<p>Jonathon,</p>
<p>Do we have histograms on these columns,  Also i would like to see the result with oracle 11g column statistics. </p>
<p>Regards<br />
Amir Riaz</p>
]]></content:encoded>
	</item>
</channel>
</rss>
