<?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: Hints &#8211; again</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2007/06/17/hints-again/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Wed, 22 May 2013 12:40:08 +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/2007/06/17/hints-again/#comment-54282</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sun, 24 Mar 2013 08:01:20 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-54282</guid>
		<description><![CDATA[Lou,

It&#039;s a common misconception; but from a simple philosophical point of view the optimizer can&#039;t &quot;choose&quot; to do anything. If you want to suggest that the optimizer can &quot;choose&quot; to ignore a hint that means that given the same query, data, stats, and hints, it would use one execution path one day and a different execution path another day. It doesn&#039;t.

The optimizer may appear to ignore a hint, but the reason for that will be one of 
(a) you don&#039;t know the rules that make the hint relevant, or 
(b) you&#039;ve found a bug in the code, or 
(c) the access path analysis code took a path through its decision tree that didn&#039;t pass through the code where your hint was relevant (which means you didn&#039;t hint the query properly, of course).]]></description>
		<content:encoded><![CDATA[<p>Lou,</p>
<p>It&#8217;s a common misconception; but from a simple philosophical point of view the optimizer can&#8217;t &#8220;choose&#8221; to do anything. If you want to suggest that the optimizer can &#8220;choose&#8221; to ignore a hint that means that given the same query, data, stats, and hints, it would use one execution path one day and a different execution path another day. It doesn&#8217;t.</p>
<p>The optimizer may appear to ignore a hint, but the reason for that will be one of<br />
(a) you don&#8217;t know the rules that make the hint relevant, or<br />
(b) you&#8217;ve found a bug in the code, or<br />
(c) the access path analysis code took a path through its decision tree that didn&#8217;t pass through the code where your hint was relevant (which means you didn&#8217;t hint the query properly, of course).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lou</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-54273</link>
		<dc:creator><![CDATA[Lou]]></dc:creator>
		<pubDate>Sat, 23 Mar 2013 18:22:19 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-54273</guid>
		<description><![CDATA[Jonathan,

Thanks for another good observation. However, when it comes to &quot;hints&quot;. my understanding has always been that it  just a &quot;suggestion&quot; to the optimizer and, of course, it can an choose to ignore it. This is weather you know how to use it or not. There are a lot factors that are involved in  the optimizer choosing a path.]]></description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>Thanks for another good observation. However, when it comes to &#8220;hints&#8221;. my understanding has always been that it  just a &#8220;suggestion&#8221; to the optimizer and, of course, it can an choose to ignore it. This is weather you know how to use it or not. There are a lot factors that are involved in  the optimizer choosing a path.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Latest data Industry news round up, Log Buffer #312</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-54261</link>
		<dc:creator><![CDATA[Latest data Industry news round up, Log Buffer #312]]></dc:creator>
		<pubDate>Fri, 22 Mar 2013 17:32:23 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-54261</guid>
		<description><![CDATA[[...] well do you know your hints? When Jonathan asks, it stays [...]]]></description>
		<content:encoded><![CDATA[<p>[...] well do you know your hints? When Jonathan asks, it stays [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alter session force parallel query doesn&#8217;t really force anything &#124; Tanel Poder&#039;s blog: IT &#38; Mobile for Geeks and Pros</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-54217</link>
		<dc:creator><![CDATA[Alter session force parallel query doesn&#8217;t really force anything &#124; Tanel Poder&#039;s blog: IT &#38; Mobile for Geeks and Pros]]></dc:creator>
		<pubDate>Wed, 20 Mar 2013 16:07:07 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-54217</guid>
		<description><![CDATA[[...] Lewis has already written about this behavior from the angle of PARALLEL [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Lewis has already written about this behavior from the angle of PARALLEL [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SQL Patch III plus Parallel Baselines &#171; OraStory</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-45371</link>
		<dc:creator><![CDATA[SQL Patch III plus Parallel Baselines &#171; OraStory]]></dc:creator>
		<pubDate>Fri, 09 Mar 2012 12:09:31 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-45371</guid>
		<description><![CDATA[[...] And perhaps that&#8217;s not surprising if you know what the PARALLEL hint does &#8211; it doesn&#8217;t force parallelism? [...]]]></description>
		<content:encoded><![CDATA[<p>[...] And perhaps that&#8217;s not surprising if you know what the PARALLEL hint does &#8211; it doesn&#8217;t force parallelism? [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Parallel Reasoning &#171; Charles Hooper&#39;s Oracle Notes</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-35526</link>
		<dc:creator><![CDATA[Parallel Reasoning &#171; Charles Hooper&#39;s Oracle Notes]]></dc:creator>
		<pubDate>Wed, 17 Feb 2010 06:04:05 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-35526</guid>
		<description><![CDATA[[...] Hints &#8211; Again &#8220;But the hint we supplied is only relevant to the tablescan – and we can see it being used in the arithmetic above: the cost_io is the serial I/O cost of the tablescan, the resp_io is the ‘parallel response’ time for the query which is (cost_io / (0.9 * degree)).&#8221; [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Hints &#8211; Again &#8220;But the hint we supplied is only relevant to the tablescan – and we can see it being used in the arithmetic above: the cost_io is the serial I/O cost of the tablescan, the resp_io is the ‘parallel response’ time for the query which is (cost_io / (0.9 * degree)).&#8221; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ignoring Hints &#8211; 2 &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-35474</link>
		<dc:creator><![CDATA[Ignoring Hints &#8211; 2 &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Thu, 11 Feb 2010 19:30:05 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-35474</guid>
		<description><![CDATA[[...] http://jonathanlewis.wordpress.com/2007/06/17/hints-again [...]]]></description>
		<content:encoded><![CDATA[<p>[...] <a href="http://jonathanlewis.wordpress.com/2007/06/17/hints-again" rel="nofollow">http://jonathanlewis.wordpress.com/2007/06/17/hints-again</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Quiz Night &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-34562</link>
		<dc:creator><![CDATA[Quiz Night &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Sat, 03 Oct 2009 04:40:58 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-34562</guid>
		<description><![CDATA[[...] postings on hints:  Hints &#8211; again Ignoring Hints What is a hint ? Taking a hint    Comments [...]]]></description>
		<content:encoded><![CDATA[<p>[...] postings on hints:  Hints &#8211; again Ignoring Hints What is a hint ? Taking a hint    Comments [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-33196</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sat, 30 May 2009 09:59:23 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-33196</guid>
		<description><![CDATA[Darian,
I&#039;ve just discoverd your comment - so I hope a late reply is better than none.

The answer to your question is: I don&#039;t know why there are two calculatons for the index fast full scan, but I think (or, rather, I am prepared to guess) that one of them is dumped by the code path that does the original serial cost calculation, and the other is dumped by the code path that does the parallel costing.

In this case, the parallel costing calculation seems to be redundant because the degree stored in the data dictionary for the index is one, and there is no hint to tell Oracle to use parallelism on the index.

There is an anomaly in using &lt;em&gt;&lt;strong&gt;parallel_index&lt;/strong&gt;&lt;/em&gt; hints - or declaring indexes parallel, by the way: unless the table has also been declared parallel (&lt;em&gt;&lt;strong&gt;default&lt;/strong&gt;&lt;/em&gt;, or a value other than 1) then the cost of the parallel &lt;em&gt;&lt;strong&gt;index_ffs&lt;/strong&gt;&lt;/em&gt; is not adjusted by the degree of parallelism specified (even in 11g)]]></description>
		<content:encoded><![CDATA[<p>Darian,<br />
I&#8217;ve just discoverd your comment &#8211; so I hope a late reply is better than none.</p>
<p>The answer to your question is: I don&#8217;t know why there are two calculatons for the index fast full scan, but I think (or, rather, I am prepared to guess) that one of them is dumped by the code path that does the original serial cost calculation, and the other is dumped by the code path that does the parallel costing.</p>
<p>In this case, the parallel costing calculation seems to be redundant because the degree stored in the data dictionary for the index is one, and there is no hint to tell Oracle to use parallelism on the index.</p>
<p>There is an anomaly in using <em><strong>parallel_index</strong></em> hints &#8211; or declaring indexes parallel, by the way: unless the table has also been declared parallel (<em><strong>default</strong></em>, or a value other than 1) then the cost of the parallel <em><strong>index_ffs</strong></em> is not adjusted by the degree of parallelism specified (even in 11g)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Darian</title>
		<link>http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-32551</link>
		<dc:creator><![CDATA[Darian]]></dc:creator>
		<pubDate>Thu, 15 Jan 2009 01:22:16 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/06/17/hints-again/#comment-32551</guid>
		<description><![CDATA[Jonathan,

From your 10053 trace above, there are 2 index FFS access paths reported:
&lt;code&gt;
 &#160;Access Path: index (index (FFS))
 &#160; &#160;Index: T1_PK
 &#160; &#160;resc_io: 7.00 &#160;resc_cpu: 1342429
 &#160; &#160;ix_sel: 0.0000e+000 &#160;ix_sel_with_filters: 1
 &#160;Access Path: index (FFS)
 &#160; &#160;Cost: &#160;7.23 &#160;Resp: 7.23 &#160;Degree: 1
 &#160; &#160; &#160;Cost_io: 7.00 &#160;Cost_cpu: 1342429
 &#160; &#160; &#160;Resp_io: 7.00 &#160;Resp_cpu: 1342429
&lt;/code&gt;

The one reported as index (index (FFS)) has the index and selectivities
indicated. The one reported as index (FFS) doesn&#039;t. What is the difference
between these 2 access paths? I am also seeing similar index FFS access
paths reported in my 10053 traces.


Many thanks,
Darian]]></description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>From your 10053 trace above, there are 2 index FFS access paths reported:<br />
<code><br />
 &nbsp;Access Path: index (index (FFS))<br />
 &nbsp; &nbsp;Index: T1_PK<br />
 &nbsp; &nbsp;resc_io: 7.00 &nbsp;resc_cpu: 1342429<br />
 &nbsp; &nbsp;ix_sel: 0.0000e+000 &nbsp;ix_sel_with_filters: 1<br />
 &nbsp;Access Path: index (FFS)<br />
 &nbsp; &nbsp;Cost: &nbsp;7.23 &nbsp;Resp: 7.23 &nbsp;Degree: 1<br />
 &nbsp; &nbsp; &nbsp;Cost_io: 7.00 &nbsp;Cost_cpu: 1342429<br />
 &nbsp; &nbsp; &nbsp;Resp_io: 7.00 &nbsp;Resp_cpu: 1342429<br />
</code></p>
<p>The one reported as index (index (FFS)) has the index and selectivities<br />
indicated. The one reported as index (FFS) doesn&#8217;t. What is the difference<br />
between these 2 access paths? I am also seeing similar index FFS access<br />
paths reported in my 10053 traces.</p>
<p>Many thanks,<br />
Darian</p>
]]></content:encoded>
	</item>
</channel>
</rss>
