<?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/"
		>
<channel>
	<title>Comments on: Understanding Performance</title>
	<atom:link href="http://structureddata.org/2008/09/08/understanding-performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://structureddata.org/2008/09/08/understanding-performance/</link>
	<description>Oracle Database Performance And Scalability Blog</description>
	<lastBuildDate>Mon, 01 Mar 2010 22:11:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: ASSM Problem with too low PCTFREE &#124; ora-solutions.net - Martin Decker</title>
		<link>http://structureddata.org/2008/09/08/understanding-performance/comment-page-1/#comment-251</link>
		<dc:creator>ASSM Problem with too low PCTFREE &#124; ora-solutions.net - Martin Decker</dc:creator>
		<pubDate>Thu, 09 Apr 2009 19:40:34 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=88#comment-251</guid>
		<description>[...] http://structureddata.org/2008/09/08/understanding-performance/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://structureddata.org/2008/09/08/understanding-performance/" rel="nofollow">http://structureddata.org/2008/09/08/understanding-performance/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Burleson BS 1 &#171; Oracle Scratchpad</title>
		<link>http://structureddata.org/2008/09/08/understanding-performance/comment-page-1/#comment-247</link>
		<dc:creator>Burleson BS 1 &#171; Oracle Scratchpad</dc:creator>
		<pubDate>Tue, 30 Sep 2008 08:18:22 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=88#comment-247</guid>
		<description>[...] some mud around because he feels threatened by Greg&#8217;s choice of example in a posting about &#8220;Understanding Performance&#8221; . The standard is typical [...]</description>
		<content:encoded><![CDATA[<p>[...] some mud around because he feels threatened by Greg&#8217;s choice of example in a posting about &#8220;Understanding Performance&#8221; . The standard is typical [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2008/09/08/understanding-performance/comment-page-1/#comment-248</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Mon, 29 Sep 2008 01:27:13 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=88#comment-248</guid>
		<description>@Steve

Just before the turn of the millennium there was this big scare related to a single bug.  People thought that it might bring about the end of the world.  I believe it was named the Y2K bug.  It just so happened that in many cases this software bug had actually existed secretly and without causing any problems for decades.  Since it had existed for so long did it make it any less of a bug?  Of course not.  Obviously bugs can exist and not cause any problems, as long as the bug is not encountered.  When an Oracle customer noticed that they had orders of magnitudes difference in an UPDATE statement depending on whether they used an 8k block or a 32k block they reported it to Oracle Support and wanted to understand why because they thought it not to be normal to have such a varying degree of performance related to only changing block size.

It just so happened that in your case you went from hitting the bug to not hitting the bug so performance increased for you.  What would your position on this be if it had been the other way around:  You observed a 20x degradation from switching from an 4k (or 8k) block to 16k (or 32k)?  Would you and Don Burleson be publicizing that in the same manner that is being done with this case?  Somehow I think not.  I doubt it would have even been mentioned.  I can&#039;t imagine that someone who would write or promote a blog post entitled &quot;Only Changing Block Size Causes 20x Degradation&quot;.

I agree 110% with you on posting all of the details around one&#039;s observations and had you not provided the information you had, it would be unlikely that everyone would be aware of this bug.  I hope there is many more to come from you.  In this case I think much, much more is understood because of it.

I don&#039;t recall making any comment about the anger around the mention of block size.  What was the comment and context?  My position on this whole block size escapade has always been one of providing enough technical details and providing an explanation of why.  Always.  I&#039;ve asked for that numerous times.  It has never been about &quot;who&quot;.  Ever.  It just so happens that a certain person is very persistent with providing unsupported and unexplained claims.  I (and others) have repeatedly challenged these claims.   To date and to the best of my knowledge there does not exist any evidence supporting any such claims.  If I found someone else making unsupported claims that I do not agree with, I would challenge their claims as well (after having done some research and experiments on my own.)  So if there is evidence out there, I hope it comes forward.

With that, I think we have pretty much wrapped up our discussion on this as it seems we agree on the technical bits.

For clarification, what PCTFREE did you use in the mentioned case?  The default of 10?</description>
		<content:encoded><![CDATA[<p>@Steve</p>
<p>Just before the turn of the millennium there was this big scare related to a single bug.  People thought that it might bring about the end of the world.  I believe it was named the Y2K bug.  It just so happened that in many cases this software bug had actually existed secretly and without causing any problems for decades.  Since it had existed for so long did it make it any less of a bug?  Of course not.  Obviously bugs can exist and not cause any problems, as long as the bug is not encountered.  When an Oracle customer noticed that they had orders of magnitudes difference in an UPDATE statement depending on whether they used an 8k block or a 32k block they reported it to Oracle Support and wanted to understand why because they thought it not to be normal to have such a varying degree of performance related to only changing block size.</p>
<p>It just so happened that in your case you went from hitting the bug to not hitting the bug so performance increased for you.  What would your position on this be if it had been the other way around:  You observed a 20x degradation from switching from an 4k (or 8k) block to 16k (or 32k)?  Would you and Don Burleson be publicizing that in the same manner that is being done with this case?  Somehow I think not.  I doubt it would have even been mentioned.  I can&#8217;t imagine that someone who would write or promote a blog post entitled &#8220;Only Changing Block Size Causes 20x Degradation&#8221;.</p>
<p>I agree 110% with you on posting all of the details around one&#8217;s observations and had you not provided the information you had, it would be unlikely that everyone would be aware of this bug.  I hope there is many more to come from you.  In this case I think much, much more is understood because of it.</p>
<p>I don&#8217;t recall making any comment about the anger around the mention of block size.  What was the comment and context?  My position on this whole block size escapade has always been one of providing enough technical details and providing an explanation of why.  Always.  I&#8217;ve asked for that numerous times.  It has never been about &#8220;who&#8221;.  Ever.  It just so happens that a certain person is very persistent with providing unsupported and unexplained claims.  I (and others) have repeatedly challenged these claims.   To date and to the best of my knowledge there does not exist any evidence supporting any such claims.  If I found someone else making unsupported claims that I do not agree with, I would challenge their claims as well (after having done some research and experiments on my own.)  So if there is evidence out there, I hope it comes forward.</p>
<p>With that, I think we have pretty much wrapped up our discussion on this as it seems we agree on the technical bits.</p>
<p>For clarification, what PCTFREE did you use in the mentioned case?  The default of 10?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Donald K. Burleson</title>
		<link>http://structureddata.org/2008/09/08/understanding-performance/comment-page-1/#comment-250</link>
		<dc:creator>Donald K. Burleson</dc:creator>
		<pubDate>Wed, 24 Sep 2008 10:06:42 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=88#comment-250</guid>
		<description>Greg,

Your post contains an excellent DBA-101 overview of the impact of PCTFREE and blocksize, well-written and understandable.  The next step would be to add the impact of avg_row_len and estimations of future rows expansion.
All professional DBA’s know that minimizing chained rows is a fundamental job role and they recognize that row migration (chaining) is a function of:

- blocksize
- PCFREE
- load time average row length
- Expected row expansion (bytes per row)

While the demonstration is sound, there are a few issues and conclusions which are not fully supported by the facts:

*******************************************
&gt;&gt; At this point in time, it is pretty much understood (I hope) that this performance delta is directly related to bug 6918210.

The bug may be an interceding factor, but Karam was using ASSM, right?  Can you get the details about this bug?

********************************************
&gt;&gt; Row migrations are generally caused by too low of a PCTFREE setting on the table.
I have no doubt that this is the case in some databases, but not in my experience.  Excessive chained rows are a result of a DBA error, usually by failing to anticipate the future row expansion.  An improper PCTFREE (precipitating a high chain_cnt) is a DBA error, and quite rare.  In my world migrated rows are the result of large objects in small blocks, and the most common remedy of to deploy a larger blocksize.

*******************************************
&gt;&gt; Jonathan Lewis gets the credit for putting the test case together that reproduces performance bug.

No, that bug is nearly ten years old, and it did not use ASSM.

*******************************************
&gt;&gt; default PCTFREE setting of 10 (he has not noted otherwise).

Did you bother to ASK HIM?  No.  Did you write this?  “The most important part of performance troubleshooting is gathering good information.”

*******************************************
&gt;&gt; performance is best when PCTFREE is optimal, no matter what the block size.

We are talking about a documented bug, remember?  To be more specific, the number of migrated rows (and the associated poor performance) is functionally dependent on PCTFREE, but it’s also a function of avg_row_len and blocksize!

*******************************************
&gt;&gt; events or undocumented parameters for probing Oracle here and there, for figuring out what’s going on. But I used a simple systematic approach instead.

I’ve met Tanel and I’ve never seen him present himself as someone with an extensive history of tuning production databases.  No, real experts don’t need checklists, they are very useful for beginners, but real tuning guru’s don’t need them.

Greg, I have noticed that you find our answers to be unintelligible, and like Oscar Wilde said “Anything worth knowing cannot be taught”.  On the other hand, I know exactly where you are coming from, and I had a very similar “theoretical” mindset when I had your level of experience.  ( please don’t take this as a put-down, and I would never exploit your youth and inexperience  ; ) ).

After you have tuned a few thousand more databases, you will find yourself becoming more pragmatic and not in-need of a rigorous checklist, and you will skip steps and get right to the root cause of issues.</description>
		<content:encoded><![CDATA[<p>Greg,</p>
<p>Your post contains an excellent DBA-101 overview of the impact of PCTFREE and blocksize, well-written and understandable.  The next step would be to add the impact of avg_row_len and estimations of future rows expansion.<br />
All professional DBA’s know that minimizing chained rows is a fundamental job role and they recognize that row migration (chaining) is a function of:</p>
<p>- blocksize<br />
- PCFREE<br />
- load time average row length<br />
- Expected row expansion (bytes per row)</p>
<p>While the demonstration is sound, there are a few issues and conclusions which are not fully supported by the facts:</p>
<p>*******************************************<br />
&gt;&gt; At this point in time, it is pretty much understood (I hope) that this performance delta is directly related to bug 6918210.</p>
<p>The bug may be an interceding factor, but Karam was using ASSM, right?  Can you get the details about this bug?</p>
<p>********************************************<br />
&gt;&gt; Row migrations are generally caused by too low of a PCTFREE setting on the table.<br />
I have no doubt that this is the case in some databases, but not in my experience.  Excessive chained rows are a result of a DBA error, usually by failing to anticipate the future row expansion.  An improper PCTFREE (precipitating a high chain_cnt) is a DBA error, and quite rare.  In my world migrated rows are the result of large objects in small blocks, and the most common remedy of to deploy a larger blocksize.</p>
<p>*******************************************<br />
&gt;&gt; Jonathan Lewis gets the credit for putting the test case together that reproduces performance bug.</p>
<p>No, that bug is nearly ten years old, and it did not use ASSM.</p>
<p>*******************************************<br />
&gt;&gt; default PCTFREE setting of 10 (he has not noted otherwise).</p>
<p>Did you bother to ASK HIM?  No.  Did you write this?  “The most important part of performance troubleshooting is gathering good information.”</p>
<p>*******************************************<br />
&gt;&gt; performance is best when PCTFREE is optimal, no matter what the block size.</p>
<p>We are talking about a documented bug, remember?  To be more specific, the number of migrated rows (and the associated poor performance) is functionally dependent on PCTFREE, but it’s also a function of avg_row_len and blocksize!</p>
<p>*******************************************<br />
&gt;&gt; events or undocumented parameters for probing Oracle here and there, for figuring out what’s going on. But I used a simple systematic approach instead.</p>
<p>I’ve met Tanel and I’ve never seen him present himself as someone with an extensive history of tuning production databases.  No, real experts don’t need checklists, they are very useful for beginners, but real tuning guru’s don’t need them.</p>
<p>Greg, I have noticed that you find our answers to be unintelligible, and like Oscar Wilde said “Anything worth knowing cannot be taught”.  On the other hand, I know exactly where you are coming from, and I had a very similar “theoretical” mindset when I had your level of experience.  ( please don’t take this as a put-down, and I would never exploit your youth and inexperience  ; ) ).</p>
<p>After you have tuned a few thousand more databases, you will find yourself becoming more pragmatic and not in-need of a rigorous checklist, and you will skip steps and get right to the root cause of issues.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Karam</title>
		<link>http://structureddata.org/2008/09/08/understanding-performance/comment-page-1/#comment-249</link>
		<dc:creator>Steve Karam</dc:creator>
		<pubDate>Mon, 22 Sep 2008 16:17:53 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=88#comment-249</guid>
		<description>Greg,

I definitely agree with the concept that the &#039;why&#039; is very important, and I publicly applauded Jonathan for his test case which explained the &#039;why&#039; in further detail.

&quot;Most importantly, performance is best when PCTFREE is optimal, no matter what the block size.&quot;

I don&#039;t argue that optimal settings will yield optimal results.  However, a suboptimal PCTFREE should never blow performance out of the water as it does here.

&quot;In this case block size matters when bug 6918210 is encountered&quot;

Anytime you use a 16k or 32k blocksize using ASSM without a perfect PCTFREE.  I&#039;d say that could be an extremely common issue.  Of course, you advocate sticking to a tested 8k blocksize, so you would probably agree.

&quot;At this point in time, it is pretty much understood (I hope) that this performance delta is directly related to bug 6918210&quot;

I still say that a 3 version bug (9i - 11g) is less of a bug than it is a fact of life.  If this is not present in 12, unless it is backported I would consider it a &#039;performance improvement&#039; rather than a &#039;bug fix&#039;.

Just my $0.02.  I would also add that this post is a shining example of the importance of posting observations, no matter how outlandish or how much it goes against conventional wisdom.  At the beginning of the forum thread you mentioned, there was a lot of anger at the simple mention of different blocksizes causing different performance results.  Put simply, it was a debate of &quot;what&quot; and &quot;who&quot; and not &quot;why&quot;.</description>
		<content:encoded><![CDATA[<p>Greg,</p>
<p>I definitely agree with the concept that the &#8216;why&#8217; is very important, and I publicly applauded Jonathan for his test case which explained the &#8216;why&#8217; in further detail.</p>
<p>&#8220;Most importantly, performance is best when PCTFREE is optimal, no matter what the block size.&#8221;</p>
<p>I don&#8217;t argue that optimal settings will yield optimal results.  However, a suboptimal PCTFREE should never blow performance out of the water as it does here.</p>
<p>&#8220;In this case block size matters when bug 6918210 is encountered&#8221;</p>
<p>Anytime you use a 16k or 32k blocksize using ASSM without a perfect PCTFREE.  I&#8217;d say that could be an extremely common issue.  Of course, you advocate sticking to a tested 8k blocksize, so you would probably agree.</p>
<p>&#8220;At this point in time, it is pretty much understood (I hope) that this performance delta is directly related to bug 6918210&#8243;</p>
<p>I still say that a 3 version bug (9i &#8211; 11g) is less of a bug than it is a fact of life.  If this is not present in 12, unless it is backported I would consider it a &#8216;performance improvement&#8217; rather than a &#8216;bug fix&#8217;.</p>
<p>Just my $0.02.  I would also add that this post is a shining example of the importance of posting observations, no matter how outlandish or how much it goes against conventional wisdom.  At the beginning of the forum thread you mentioned, there was a lot of anger at the simple mention of different blocksizes causing different performance results.  Put simply, it was a debate of &#8220;what&#8221; and &#8220;who&#8221; and not &#8220;why&#8221;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
