<?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: DB File Scattered Read Wait Event &#8211; What is Wrong with this Quote?</title>
	<atom:link href="http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/feed/" rel="self" type="application/rss+xml" />
	<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-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: These Aren&#039;t the Metrics You&#039;re Looking For - Steve Karam :: The Oracle Alchemist</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-5320</link>
		<dc:creator><![CDATA[These Aren&#039;t the Metrics You&#039;re Looking For - Steve Karam :: The Oracle Alchemist]]></dc:creator>
		<pubDate>Thu, 21 Mar 2013 14:19:14 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-5320</guid>
		<description><![CDATA[[...] file scattered read&#8217; waits aren&#8217;t the only multiblock I/Os out there and certainly not the only indicators of full table scans. In 11g a &#8216;direct path read&#8217; can also indicate a full table scan, and events like [...]]]></description>
		<content:encoded><![CDATA[<p>[...] file scattered read&#8217; waits aren&#8217;t the only multiblock I/Os out there and certainly not the only indicators of full table scans. In 11g a &#8216;direct path read&#8217; can also indicate a full table scan, and events like [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1391</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Tue, 15 Jun 2010 20:08:07 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1391</guid>
		<description><![CDATA[Nice expansion of the details - thank you (and all of the other responders) for adding value to this blog article.]]></description>
		<content:encoded><![CDATA[<p>Nice expansion of the details &#8211; thank you (and all of the other responders) for adding value to this blog article.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frits Hoogland</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1389</link>
		<dc:creator><![CDATA[Frits Hoogland]]></dc:creator>
		<pubDate>Tue, 15 Jun 2010 19:03:19 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1389</guid>
		<description><![CDATA[Sorry for being a little short. Fast full index scans are reported as db file scattered read, which follows the quote.
As far as I know, direct path reads AND direct path writes can do multiblock IO, and direct path read temp and direct path write temp can also do multiblock IO.

It also depends on the definition of &#039;multiblock IO&#039;: if you look at the control file wait events, at least the waitevents have the ability to report time taken to do IO for reading/writing multiple blocks. But these are not database blocks, but controlfile blocks. The same is true for the log file related waits.

If we start to get really creative, but also not get away a bit from physical IO, you could also wait for multiple blocks from a remote cache with RAC with the &#039;gc cr multi block request&#039; request. Or is that too far off?]]></description>
		<content:encoded><![CDATA[<p>Sorry for being a little short. Fast full index scans are reported as db file scattered read, which follows the quote.<br />
As far as I know, direct path reads AND direct path writes can do multiblock IO, and direct path read temp and direct path write temp can also do multiblock IO.</p>
<p>It also depends on the definition of &#8216;multiblock IO&#8217;: if you look at the control file wait events, at least the waitevents have the ability to report time taken to do IO for reading/writing multiple blocks. But these are not database blocks, but controlfile blocks. The same is true for the log file related waits.</p>
<p>If we start to get really creative, but also not get away a bit from physical IO, you could also wait for multiple blocks from a remote cache with RAC with the &#8216;gc cr multi block request&#8217; request. Or is that too far off?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1388</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Tue, 15 Jun 2010 17:24:47 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1388</guid>
		<description><![CDATA[Frits,

Thank you for the reply.  Your comment is a little short in terms of context.  I *think* that you are indicating that fast full index scans are also likely to perform multiblock IO.  If that is the case, I think that your comment applies to the second half of my previous response.  Nice addition.]]></description>
		<content:encoded><![CDATA[<p>Frits,</p>
<p>Thank you for the reply.  Your comment is a little short in terms of context.  I *think* that you are indicating that fast full index scans are also likely to perform multiblock IO.  If that is the case, I think that your comment applies to the second half of my previous response.  Nice addition.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frits Hoogland</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1385</link>
		<dc:creator><![CDATA[Frits Hoogland]]></dc:creator>
		<pubDate>Tue, 15 Jun 2010 15:00:23 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1385</guid>
		<description><![CDATA[fast full index scans I believe]]></description>
		<content:encoded><![CDATA[<p>fast full index scans I believe</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1381</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Tue, 15 Jun 2010 00:00:30 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1381</guid>
		<description><![CDATA[The number of page views on this blog article and my home page are much higher than typical.  I think that I now know why.  The article and my home page were mentioned in two responses in this Oracle-L thread:
http://www.freelists.org/post/oracle-l/db-file-sequentialscattered-read-physical-or-logical-io-or-both,12

(I need to determine if Cary was stating that my blog articles/comments were faulty, or if he was commenting that I am pointing out a lot of silly mistakes that are written in books, blog articles, and commercial websites.)

So, how is it that my netbook running Window 7 Professional and Oracle Database 11.2.0.1 are able to see 0.6ms access times for multiblock reads?  Oracle running on the Windows platform uses direct, asynchronous IO, so there is no help from the operating system file cache.  A couple of possibilies:
* Many hard drives will have at least 8MB of built-in cache memory, and possibly 32MB (or more) cache memory.  I believe that my netbook&#039;s hard drive has 16MB of built-in cache, and it may be performing read-ahead optimization.
* The disk controller may have a built-in cache set to read-ahead caching - predicting the next piece of a file that will be read.  In my case, the disk controller does not have cache memory.
* The disk head might have been in just the right location over the spinning platter to quickly pick up the data from the drive.
* I might have the netbook connected to a SAN (this is not the case).
* There might have been unaccounted for time that helped the drive platter rotate into position before timing started (see the latest Quiz Night article on Jonathan Lewis&#039; blog for an example).
* The hard drive in the netbook might be a hybrid - part SSD and part spinning rust (this is not the case).
* The hard drive might actually be a SSD (this is not the case - yet).

---
Now on to another problem that I have with the quote.  &quot;Oracle gives a multiblock IO call the special name db file scattered read.&quot;  What could be wrong with this statement - yes, a multiblock IO *could* be reported as a db file scattered read:
* On Oracle 11.1.0.6 and above, Oracle just might decide to do a direct path read rather than a df file scattered read while performing a full table scan - I do believe that a direct path read could be a multiblock IO.  Direct path reads are also used during parallel execution.
* Index pre-fetch might use a db file parallel read, where multiple non-adjacent blocks are read in a single IO call - I believe that type of access could be considered a multiblock IO.
* The direct path read temp wait events might appear as a result of a multiblock IO of a temp tablespace.

So, what has yet to be mentioned about the quote?]]></description>
		<content:encoded><![CDATA[<p>The number of page views on this blog article and my home page are much higher than typical.  I think that I now know why.  The article and my home page were mentioned in two responses in this Oracle-L thread:<br />
<a href="http://www.freelists.org/post/oracle-l/db-file-sequentialscattered-read-physical-or-logical-io-or-both,12" rel="nofollow">http://www.freelists.org/post/oracle-l/db-file-sequentialscattered-read-physical-or-logical-io-or-both,12</a></p>
<p>(I need to determine if Cary was stating that my blog articles/comments were faulty, or if he was commenting that I am pointing out a lot of silly mistakes that are written in books, blog articles, and commercial websites.)</p>
<p>So, how is it that my netbook running Window 7 Professional and Oracle Database 11.2.0.1 are able to see 0.6ms access times for multiblock reads?  Oracle running on the Windows platform uses direct, asynchronous IO, so there is no help from the operating system file cache.  A couple of possibilies:<br />
* Many hard drives will have at least 8MB of built-in cache memory, and possibly 32MB (or more) cache memory.  I believe that my netbook&#8217;s hard drive has 16MB of built-in cache, and it may be performing read-ahead optimization.<br />
* The disk controller may have a built-in cache set to read-ahead caching &#8211; predicting the next piece of a file that will be read.  In my case, the disk controller does not have cache memory.<br />
* The disk head might have been in just the right location over the spinning platter to quickly pick up the data from the drive.<br />
* I might have the netbook connected to a SAN (this is not the case).<br />
* There might have been unaccounted for time that helped the drive platter rotate into position before timing started (see the latest Quiz Night article on Jonathan Lewis&#8217; blog for an example).<br />
* The hard drive in the netbook might be a hybrid &#8211; part SSD and part spinning rust (this is not the case).<br />
* The hard drive might actually be a SSD (this is not the case &#8211; yet).</p>
<p>&#8212;<br />
Now on to another problem that I have with the quote.  &#8220;Oracle gives a multiblock IO call the special name db file scattered read.&#8221;  What could be wrong with this statement &#8211; yes, a multiblock IO *could* be reported as a db file scattered read:<br />
* On Oracle 11.1.0.6 and above, Oracle just might decide to do a direct path read rather than a df file scattered read while performing a full table scan &#8211; I do believe that a direct path read could be a multiblock IO.  Direct path reads are also used during parallel execution.<br />
* Index pre-fetch might use a db file parallel read, where multiple non-adjacent blocks are read in a single IO call &#8211; I believe that type of access could be considered a multiblock IO.<br />
* The direct path read temp wait events might appear as a result of a multiblock IO of a temp tablespace.</p>
<p>So, what has yet to be mentioned about the quote?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roberto</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1377</link>
		<dc:creator><![CDATA[Roberto]]></dc:creator>
		<pubDate>Mon, 14 Jun 2010 13:50:30 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1377</guid>
		<description><![CDATA[1) &quot;... because a physical spinning IO device cannot return 16 nonsequential blocks (the blocks could be scattered over many physical devices)&quot;
Data striping (or ASM)?
2) &quot;Oracle gives a multiblock IO call the special name db file scattered read, BECAUSE these multiple blocks can be scattered over the IO subsystem.&quot;
I think that BECAUSE (maybe) is wrong.]]></description>
		<content:encoded><![CDATA[<p>1) &#8220;&#8230; because a physical spinning IO device cannot return 16 nonsequential blocks (the blocks could be scattered over many physical devices)&#8221;<br />
Data striping (or ASM)?<br />
2) &#8220;Oracle gives a multiblock IO call the special name db file scattered read, BECAUSE these multiple blocks can be scattered over the IO subsystem.&#8221;<br />
I think that BECAUSE (maybe) is wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1376</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Mon, 14 Jun 2010 11:04:27 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1376</guid>
		<description><![CDATA[Niall,

I faintly remember reading something like that also, but cannot find the source.  I paged through the &quot;Oracle Insights - Tales of the Oak Table&quot; book and did not find it in that book (I could have overlooked it - if someone finds it, please provide a reference to the source).  I searched and found a reference in the &quot;Oracle Wait Interface&quot; book (one of that book&#039;s authors was a technical reviewer of the Firefighting book):
&lt;a href=&quot;http://books.google.com/books?id=14OmJzfCfXMC&amp;pg=PA55&amp;&quot; rel=&quot;nofollow&quot;&gt;http://books.google.com/books?id=14OmJzfCfXMC&amp;pg=PA55&amp;&lt;/a&gt;

That book points back to an article that Jeff Holt (worked on the &quot;Optimizing Oracle Performance&quot; book) wrote which was titled &quot;Why are Oracle&#039;s Read Events &#039;Named Backwards&#039;?  A search for that article lead me to this page:
&lt;a href=&quot;http://www.hotsos.com/e-library/abstract.php?id=16&quot; rel=&quot;nofollow&quot;&gt;http://www.hotsos.com/e-library/abstract.php?id=16&lt;/a&gt;

From that article (page 1):

&lt;blockquote&gt;&quot;The UNIX read() function reads a contiguous portion of a file and stores it contiguously in a single memory area. The readv() function reads a contiguous portion of a file and stores pieces of that data in different areas of memory dictated by an array of memory references. Oracle disk-reads executed through calls like read() are recorded as db file sequential read events, and disk-reads executed through calls like readv() are recorded as db file scattered read events.&quot;&lt;/blockquote&gt;

The article also explains why the faster disk access provided by the read() function was not used for multiblock reads.

So, what kind of a parallel read operation is the book author describing that allows Oracle to read multiple non-sequential blocks in a single call?  I wonder if that operation is handled by the readv() function?

Anything else wrong with the quote?  Here is a hint:
My netbook, running Windows 7 Professional and Oracle Database 11.2.0.1, is able to report read times on db file scattered read events of less than 0.6ms (the author was talking about multiblock reads of 16 blocks of 8KB size, just 128KB per read request).]]></description>
		<content:encoded><![CDATA[<p>Niall,</p>
<p>I faintly remember reading something like that also, but cannot find the source.  I paged through the &#8220;Oracle Insights &#8211; Tales of the Oak Table&#8221; book and did not find it in that book (I could have overlooked it &#8211; if someone finds it, please provide a reference to the source).  I searched and found a reference in the &#8220;Oracle Wait Interface&#8221; book (one of that book&#8217;s authors was a technical reviewer of the Firefighting book):<br />
<a href="http://books.google.com/books?id=14OmJzfCfXMC&amp;pg=PA55&amp;" rel="nofollow"></a><a href="http://books.google.com/books?id=14OmJzfCfXMC&#038;pg=PA55&#038;amp" rel="nofollow">http://books.google.com/books?id=14OmJzfCfXMC&#038;pg=PA55&#038;amp</a>;</p>
<p>That book points back to an article that Jeff Holt (worked on the &#8220;Optimizing Oracle Performance&#8221; book) wrote which was titled &#8220;Why are Oracle&#8217;s Read Events &#8216;Named Backwards&#8217;?  A search for that article lead me to this page:<br />
<a href="http://www.hotsos.com/e-library/abstract.php?id=16" rel="nofollow">http://www.hotsos.com/e-library/abstract.php?id=16</a></p>
<p>From that article (page 1):</p>
<blockquote><p>&#8220;The UNIX read() function reads a contiguous portion of a file and stores it contiguously in a single memory area. The readv() function reads a contiguous portion of a file and stores pieces of that data in different areas of memory dictated by an array of memory references. Oracle disk-reads executed through calls like read() are recorded as db file sequential read events, and disk-reads executed through calls like readv() are recorded as db file scattered read events.&#8221;</p></blockquote>
<p>The article also explains why the faster disk access provided by the read() function was not used for multiblock reads.</p>
<p>So, what kind of a parallel read operation is the book author describing that allows Oracle to read multiple non-sequential blocks in a single call?  I wonder if that operation is handled by the readv() function?</p>
<p>Anything else wrong with the quote?  Here is a hint:<br />
My netbook, running Windows 7 Professional and Oracle Database 11.2.0.1, is able to report read times on db file scattered read events of less than 0.6ms (the author was talking about multiblock reads of 16 blocks of 8KB size, just 128KB per read request).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: niall litchfield</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1373</link>
		<dc:creator><![CDATA[niall litchfield]]></dc:creator>
		<pubDate>Mon, 14 Jun 2010 07:18:17 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1373</guid>
		<description><![CDATA[Hmmm, I thought, and think my source is an anecdote in the Oak Table tales book, that scattered read and sequential read got their names in an all weekend session to instrument Oracle 7 to see why a benchmark showed worse results than v6, and that in fact the names were mistakenly swapped.]]></description>
		<content:encoded><![CDATA[<p>Hmmm, I thought, and think my source is an anecdote in the Oak Table tales book, that scattered read and sequential read got their names in an all weekend session to instrument Oracle 7 to see why a benchmark showed worse results than v6, and that in fact the names were mistakenly swapped.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Frits Hoogland</title>
		<link>http://hoopercharles.wordpress.com/2010/06/13/db-file-scattered-read-wait-event-what-is-wrong-with-this-quote/#comment-1370</link>
		<dc:creator><![CDATA[Frits Hoogland]]></dc:creator>
		<pubDate>Sun, 13 Jun 2010 19:22:06 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=2607#comment-1370</guid>
		<description><![CDATA[To my understanding, the &#039;db file scattered read&#039; waitevent indicate a read which reads multiple blocks (as indicated by the value in P3), to gain benefit from (potential) readahead optimisation in the underlying IO layers. These blocks are logically ordered on the filesystem layer, but get scattered through the buffercache (because the block placing depends on availability of space in the buffercache)]]></description>
		<content:encoded><![CDATA[<p>To my understanding, the &#8216;db file scattered read&#8217; waitevent indicate a read which reads multiple blocks (as indicated by the value in P3), to gain benefit from (potential) readahead optimisation in the underlying IO layers. These blocks are logically ordered on the filesystem layer, but get scattered through the buffercache (because the block placing depends on availability of space in the buffercache)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
