<?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: Optimizer Costing 2 &#8211; What is Wrong with this Quote?</title>
	<atom:link href="http://hoopercharles.wordpress.com/2010/12/06/optimizer-costing-2-what-is-wrong-with-this-quote/feed/" rel="self" type="application/rss+xml" />
	<link>http://hoopercharles.wordpress.com/2010/12/06/optimizer-costing-2-what-is-wrong-with-this-quote/</link>
	<description>Miscellaneous Random Oracle Topics: Stop, Think, ... Understand</description>
	<lastBuildDate>Thu, 13 Jun 2013 22:46:43 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2010/12/06/optimizer-costing-2-what-is-wrong-with-this-quote/#comment-2312</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Wed, 08 Dec 2010 13:02:25 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=3848#comment-2312</guid>
		<description><![CDATA[I tried to be very careful when quoting the book.  One of the problems with the quoted section is the English syntax used in the quoted section of the book.  It almost seems that the author is suggesting to only modify the OPTIMIZER_INDEX_CACHING parameter when the DBA has failed to affect the execution plans by implementing multiple block sizes in the database - but I am not sure exactly what is intended by the first sentence.  

Another potential problem is the author&#039;s apparent suggestion that ALL index blocks should be fully cached in memory, and located in a 32KB block size tablespace.  Sure, just throw 60GB of memory to cache 50GB worth of indexes.  While we are at it, let&#039;s thrown another 200GB at the buffer cache that will be used by the table blocks and the indexes in the SYS schema (or were we supposed to move those also?).  If we scale this up to a much larger database, should we do the same if we have 2TB of space occupied by the indexes?]]></description>
		<content:encoded><![CDATA[<p>I tried to be very careful when quoting the book.  One of the problems with the quoted section is the English syntax used in the quoted section of the book.  It almost seems that the author is suggesting to only modify the OPTIMIZER_INDEX_CACHING parameter when the DBA has failed to affect the execution plans by implementing multiple block sizes in the database &#8211; but I am not sure exactly what is intended by the first sentence.  </p>
<p>Another potential problem is the author&#8217;s apparent suggestion that ALL index blocks should be fully cached in memory, and located in a 32KB block size tablespace.  Sure, just throw 60GB of memory to cache 50GB worth of indexes.  While we are at it, let&#8217;s thrown another 200GB at the buffer cache that will be used by the table blocks and the indexes in the SYS schema (or were we supposed to move those also?).  If we scale this up to a much larger database, should we do the same if we have 2TB of space occupied by the indexes?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Magnus Fagertun</title>
		<link>http://hoopercharles.wordpress.com/2010/12/06/optimizer-costing-2-what-is-wrong-with-this-quote/#comment-2266</link>
		<dc:creator><![CDATA[Magnus Fagertun]]></dc:creator>
		<pubDate>Mon, 06 Dec 2010 13:26:22 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=3848#comment-2266</guid>
		<description><![CDATA[From the documentation: OPTIMIZER_INDEX_CACHING lets you adjust the behavior of cost-based optimization to favor nested loops joins and IN-list iterators.
I see two main problems with this:

I see two main problems with this

1) Yes, the indexes will be cached, but if you are doing index-lookup and then table access on disk the nested loops will probably go slow
2) If there ever was, now there are no true OLTP systems left. You are either doing reporting based on live data, or you are moving the data into a data warehouse. For this you need large efficient scans of tables/indexes, you will not get this by nested loop joins.

I also wonder what this setting will do if combined with system statistics... Why not leave it at default? And why do you want to fragment the buffer cache by setting several block sizes?

Magnus]]></description>
		<content:encoded><![CDATA[<p>From the documentation: OPTIMIZER_INDEX_CACHING lets you adjust the behavior of cost-based optimization to favor nested loops joins and IN-list iterators.<br />
I see two main problems with this:</p>
<p>I see two main problems with this</p>
<p>1) Yes, the indexes will be cached, but if you are doing index-lookup and then table access on disk the nested loops will probably go slow<br />
2) If there ever was, now there are no true OLTP systems left. You are either doing reporting based on live data, or you are moving the data into a data warehouse. For this you need large efficient scans of tables/indexes, you will not get this by nested loop joins.</p>
<p>I also wonder what this setting will do if combined with system statistics&#8230; Why not leave it at default? And why do you want to fragment the buffer cache by setting several block sizes?</p>
<p>Magnus</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2010/12/06/optimizer-costing-2-what-is-wrong-with-this-quote/#comment-2261</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Mon, 06 Dec 2010 10:13:22 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=3848#comment-2261</guid>
		<description><![CDATA[Martin,

A very thorough answer, and you included a couple of items that I had not considered (or had not worked out in the same level of detail).

I believe that there are still a few remaining problems with the quote.]]></description>
		<content:encoded><![CDATA[<p>Martin,</p>
<p>A very thorough answer, and you included a couple of items that I had not considered (or had not worked out in the same level of detail).</p>
<p>I believe that there are still a few remaining problems with the quote.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Berger</title>
		<link>http://hoopercharles.wordpress.com/2010/12/06/optimizer-costing-2-what-is-wrong-with-this-quote/#comment-2260</link>
		<dc:creator><![CDATA[Martin Berger]]></dc:creator>
		<pubDate>Mon, 06 Dec 2010 08:40:19 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=3848#comment-2260</guid>
		<description><![CDATA[Well, where to start? 
* First it&#039;s really hard to say for sure the CBO is unaware of buffer details. Even I&#039;m quite sure this is the true (all my observations reflected this) I have never read the corresponding code or got a statement by an Oracle representative who is aware of CBO internals. 
If we consider the CBO IS unaware of buffer details, it is ALLWAYS unaware, regardless the setting of optimizer_index_caching.
* data does not use the cpu_cost metric (my data does not do anything it is passive all the time). But even if the CPU cost model is used (which is default in 10g+)  the CBO does not search for the lowest estimated CPU cost. The CPU cost model takes the performance of the IO subsystem into acount also. [1]
* (afaik) there is NO way to tell the optimizer anything about RAM or the cache! Even excessive use of db_32k_cache_size will only make the index blocks be in the cache more likely (no word about the initial &#039;load_it_into_the_cache&#039; run?) and optimizer_index_caching tells the optimizer to calculate the index extremely cheap. No bit of info about RAM or cache.
* in the first sentence it was claimed the CBO does not know anything about buffers, so how should the CBO know anything about the difference of physical and logical I/O as clamed in the last sentence?
I hope I did not introduce to many errors here. 

[1] Troubleshooting Oracle Performance - p111]]></description>
		<content:encoded><![CDATA[<p>Well, where to start?<br />
* First it&#8217;s really hard to say for sure the CBO is unaware of buffer details. Even I&#8217;m quite sure this is the true (all my observations reflected this) I have never read the corresponding code or got a statement by an Oracle representative who is aware of CBO internals.<br />
If we consider the CBO IS unaware of buffer details, it is ALLWAYS unaware, regardless the setting of optimizer_index_caching.<br />
* data does not use the cpu_cost metric (my data does not do anything it is passive all the time). But even if the CPU cost model is used (which is default in 10g+)  the CBO does not search for the lowest estimated CPU cost. The CPU cost model takes the performance of the IO subsystem into acount also. [1]<br />
* (afaik) there is NO way to tell the optimizer anything about RAM or the cache! Even excessive use of db_32k_cache_size will only make the index blocks be in the cache more likely (no word about the initial &#8216;load_it_into_the_cache&#8217; run?) and optimizer_index_caching tells the optimizer to calculate the index extremely cheap. No bit of info about RAM or cache.<br />
* in the first sentence it was claimed the CBO does not know anything about buffers, so how should the CBO know anything about the difference of physical and logical I/O as clamed in the last sentence?<br />
I hope I did not introduce to many errors here. </p>
<p>[1] Troubleshooting Oracle Performance &#8211; p111</p>
]]></content:encoded>
	</item>
</channel>
</rss>
