<?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: Fragmentation 3</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Sat, 18 May 2013 11:04:10 +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/07/19/fragmentation-3/#comment-37424</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Wed, 29 Sep 2010 15:09:58 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-37424</guid>
		<description><![CDATA[Sparsely populated blocks can only be a performance problem if you have to read more blocks to get a given amount of data than you would if the blocks were better packed. So if you can determine that your system is basically properly configured and your SQL is as efficient as it should be, but your I/O load is still higher than it should be then you may be able to infer that you are suffering from sparesly populated blocks.

If that is the case then you need to identify the objects that are suffering from the problem and work out if there is a viable way to improve the packing of the blocks without disrupting the clustering of the data. 

Note that the sparsely populated blocks may be ones that stay in memory (causing a memory shortage for other data blocks that results in excess I/O on other objects), or they may be blocks that are constantly recycled through memory.  A check for popular objects subject to a large amount of I/O may give you clues about the latter - the former may only be identifiable through knowledge of the data and application: in both cases checking row_length x row_count compared to block allocation may give you some idea of space wastage.]]></description>
		<content:encoded><![CDATA[<p>Sparsely populated blocks can only be a performance problem if you have to read more blocks to get a given amount of data than you would if the blocks were better packed. So if you can determine that your system is basically properly configured and your SQL is as efficient as it should be, but your I/O load is still higher than it should be then you may be able to infer that you are suffering from sparesly populated blocks.</p>
<p>If that is the case then you need to identify the objects that are suffering from the problem and work out if there is a viable way to improve the packing of the blocks without disrupting the clustering of the data. </p>
<p>Note that the sparsely populated blocks may be ones that stay in memory (causing a memory shortage for other data blocks that results in excess I/O on other objects), or they may be blocks that are constantly recycled through memory.  A check for popular objects subject to a large amount of I/O may give you clues about the latter &#8211; the former may only be identifiable through knowledge of the data and application: in both cases checking row_length x row_count compared to block allocation may give you some idea of space wastage.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Santosh Kumar</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-37400</link>
		<dc:creator><![CDATA[Santosh Kumar]]></dc:creator>
		<pubDate>Sun, 26 Sep 2010 15:56:57 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-37400</guid>
		<description><![CDATA[Dear Sir,

Nice article.

I would like to understand the performance impact of having sparsely populated blocks. How can we recognise that our database is suffering from poor performance because of Sparsely Populated Blocks? What will be impact if we&#039;re using Locally Managed Tablespaces?

Thanks in Advance.

Regards,
Santosh Kumar]]></description>
		<content:encoded><![CDATA[<p>Dear Sir,</p>
<p>Nice article.</p>
<p>I would like to understand the performance impact of having sparsely populated blocks. How can we recognise that our database is suffering from poor performance because of Sparsely Populated Blocks? What will be impact if we&#8217;re using Locally Managed Tablespaces?</p>
<p>Thanks in Advance.</p>
<p>Regards,<br />
Santosh Kumar</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fragmentation 1 &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-37216</link>
		<dc:creator><![CDATA[Fragmentation 1 &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Mon, 06 Sep 2010 13:00:23 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-37216</guid>
		<description><![CDATA[[...] by Fragmentation 3 &#171; Oracle Scratchpad &#8212; September 6, 2010 @ 12:57 pm UTC Sep 6,2010  &#124; [...]]]></description>
		<content:encoded><![CDATA[<p>[...] by Fragmentation 3 &laquo; Oracle Scratchpad &#8212; September 6, 2010 @ 12:57 pm UTC Sep 6,2010  | [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-36859</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Mon, 26 Jul 2010 11:50:15 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-36859</guid>
		<description><![CDATA[John,

If your system performance depends on the data being clustered and you don&#039;t realise this then you haven&#039;t &lt;b&gt;designed&lt;/b&gt; your system, you&#039;ve just let it happen - and that&#039;s asking for trouble.

If your system is designed to meet the requirements of the users, and that design is dependent on clustering the data in a certain way then that aspect of the design should be recognised, declared and the costs and benefits analysed properly. 

If the requirements change so much that a deliberately specified data clustering strategy becomes a liability then you&#039;re right it can be hard work to re-engineer - but that&#039;s not a good excuse for doing it wrong in the first place. 

The logical extreme of the concern you have voiced is the approach which says:  &lt;i&gt;&quot;Let&#039;s build a really bad system now so that we can change it any way we like later on.&quot;&lt;/i&gt;  (I&#039;d like to think that this is a rare occurrence, but experience tells me it&#039;s not - although I doubt if the designers expressed their intention the way I just did.)]]></description>
		<content:encoded><![CDATA[<p>John,</p>
<p>If your system performance depends on the data being clustered and you don&#8217;t realise this then you haven&#8217;t <b>designed</b> your system, you&#8217;ve just let it happen &#8211; and that&#8217;s asking for trouble.</p>
<p>If your system is designed to meet the requirements of the users, and that design is dependent on clustering the data in a certain way then that aspect of the design should be recognised, declared and the costs and benefits analysed properly. </p>
<p>If the requirements change so much that a deliberately specified data clustering strategy becomes a liability then you&#8217;re right it can be hard work to re-engineer &#8211; but that&#8217;s not a good excuse for doing it wrong in the first place. </p>
<p>The logical extreme of the concern you have voiced is the approach which says:  <i>&#8220;Let&#8217;s build a really bad system now so that we can change it any way we like later on.&#8221;</i>  (I&#8217;d like to think that this is a rare occurrence, but experience tells me it&#8217;s not &#8211; although I doubt if the designers expressed their intention the way I just did.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Seaman</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-36856</link>
		<dc:creator><![CDATA[John Seaman]]></dc:creator>
		<pubDate>Mon, 26 Jul 2010 00:30:18 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-36856</guid>
		<description><![CDATA[If your system design relies on your data being clustered, aren&#039;t you just asking for trouble? Because, as you say, circumstances change.]]></description>
		<content:encoded><![CDATA[<p>If your system design relies on your data being clustered, aren&#8217;t you just asking for trouble? Because, as you say, circumstances change.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-36843</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sat, 24 Jul 2010 11:40:37 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-36843</guid>
		<description><![CDATA[Ofir,

The &quot;shrink space&quot; option for &quot;alter table&quot; is worth mentioning - but my final remark applies to that feature, too: &lt;i&gt;&quot;you may find that you don’t always want to re-use that space because using it can introduce a different kind of problem.&quot;&lt;/i&gt;

Apart from the volume of undo and redo generated, and the impact that shrinking can have on the indexes on the table, the &quot;shrink space&quot; option changes the data pattern quite significantly. If you were depending on the data cluster pattern matching the time of arrival, the row movement can erode the pattern in a similar (though nastier) fashion to the way that my example of setting a high value for pctused causes an increased data spread.]]></description>
		<content:encoded><![CDATA[<p>Ofir,</p>
<p>The &#8220;shrink space&#8221; option for &#8220;alter table&#8221; is worth mentioning &#8211; but my final remark applies to that feature, too: <i>&#8220;you may find that you don’t always want to re-use that space because using it can introduce a different kind of problem.&#8221;</i></p>
<p>Apart from the volume of undo and redo generated, and the impact that shrinking can have on the indexes on the table, the &#8220;shrink space&#8221; option changes the data pattern quite significantly. If you were depending on the data cluster pattern matching the time of arrival, the row movement can erode the pattern in a similar (though nastier) fashion to the way that my example of setting a high value for pctused causes an increased data spread.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-36842</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sat, 24 Jul 2010 11:34:15 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-36842</guid>
		<description><![CDATA[Joel,

I included a footnote about the OLTP compression mechanism in http://jonathanlewis.wordpress.com/2010/03/30/heap-block-compress/ - the only way that compression could recover blocks on a delete would be by combining the data from multiple blocks, and then &quot;moving&quot; blocks around the table - and that would create havoc with rowids.]]></description>
		<content:encoded><![CDATA[<p>Joel,</p>
<p>I included a footnote about the OLTP compression mechanism in <a href="http://jonathanlewis.wordpress.com/2010/03/30/heap-block-compress/" rel="nofollow">http://jonathanlewis.wordpress.com/2010/03/30/heap-block-compress/</a> &#8211; the only way that compression could recover blocks on a delete would be by combining the data from multiple blocks, and then &#8220;moving&#8221; blocks around the table &#8211; and that would create havoc with rowids.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #196, A Carnival of the Vanities for DBAs &#124; The Pythian Blog</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-36828</link>
		<dc:creator><![CDATA[Log Buffer #196, A Carnival of the Vanities for DBAs &#124; The Pythian Blog]]></dc:creator>
		<pubDate>Fri, 23 Jul 2010 21:09:59 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-36828</guid>
		<description><![CDATA[[...] Jonathan also continues his fragmentation series with an explanation of table fragmentation and its causes. [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Jonathan also continues his fragmentation series with an explanation of table fragmentation and its causes. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Blogroll Report 16/07/2010 – 23/07/2010 &#171; Coskan&#8217;s Approach to Oracle</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-36823</link>
		<dc:creator><![CDATA[Blogroll Report 16/07/2010 – 23/07/2010 &#171; Coskan&#8217;s Approach to Oracle]]></dc:creator>
		<pubDate>Fri, 23 Jul 2010 15:17:44 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-36823</guid>
		<description><![CDATA[[...] 2-What is table level fragmentation? Jonathan Lewis-Fragmentation-3 [...]]]></description>
		<content:encoded><![CDATA[<p>[...] 2-What is table level fragmentation? Jonathan Lewis-Fragmentation-3 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francisco Munoz Alvarez</title>
		<link>http://jonathanlewis.wordpress.com/2010/07/19/fragmentation-3/#comment-36812</link>
		<dc:creator><![CDATA[Francisco Munoz Alvarez]]></dc:creator>
		<pubDate>Thu, 22 Jul 2010 20:39:01 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4147#comment-36812</guid>
		<description><![CDATA[Thanks Jonathan, excellent post like always.]]></description>
		<content:encoded><![CDATA[<p>Thanks Jonathan, excellent post like always.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
