<?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: Bitmap Updates</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Mon, 20 May 2013 17:10:14 +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/2009/10/21/bitmap-updates/#comment-34754</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Wed, 28 Oct 2009 10:02:18 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34754</guid>
		<description><![CDATA[Henish,

That&#039;s a pretty good way of summarising the change.  (I wish I&#039;d thought of making the comparison with column updates in tables.)]]></description>
		<content:encoded><![CDATA[<p>Henish,</p>
<p>That&#8217;s a pretty good way of summarising the change.  (I wish I&#8217;d thought of making the comparison with column updates in tables.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henish</title>
		<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/#comment-34752</link>
		<dc:creator><![CDATA[Henish]]></dc:creator>
		<pubDate>Tue, 27 Oct 2009 17:50:35 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34752</guid>
		<description><![CDATA[Respected Sir,

Very good example.

I want to clarify my undertanding as per your demo below

In 10g bitmap index does not keep histroy of updated bitmap entries (i.e. old values) like B-tree?

Is update to bitmap happens much like update to table? 


Please correct if i am wrong]]></description>
		<content:encoded><![CDATA[<p>Respected Sir,</p>
<p>Very good example.</p>
<p>I want to clarify my undertanding as per your demo below</p>
<p>In 10g bitmap index does not keep histroy of updated bitmap entries (i.e. old values) like B-tree?</p>
<p>Is update to bitmap happens much like update to table? </p>
<p>Please correct if i am wrong</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Blogroll Report 16/10/2009-23/10/2009 &#171; Coskan&#8217;s Approach to Oracle</title>
		<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/#comment-34738</link>
		<dc:creator><![CDATA[Blogroll Report 16/10/2009-23/10/2009 &#171; Coskan&#8217;s Approach to Oracle]]></dc:creator>
		<pubDate>Mon, 26 Oct 2009 23:55:04 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34738</guid>
		<description><![CDATA[[...] Jonathan Lewis- Bitmap Updates [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Jonathan Lewis- Bitmap Updates [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/#comment-34709</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Fri, 23 Oct 2009 16:25:22 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34709</guid>
		<description><![CDATA[Narenda,

The ideas you&#039;re working through here are exactly the type of cost/benefit analysis everyone should do when they&#039;re thinking about  strategic design decisions.

If your most significant problem is the volume of redo generated - and remember that the rate at which you can write the redo is the limit on the speed the database can operate - then you may be prepared to &quot;lose&quot; other resources to address that problem. 

I have pointed out that in this scenario you reduce the volume of redo &lt;b&gt;dramatically&lt;/b&gt; by using a smaller block size - but also suggested that you might &quot;emulate&quot; this by trying to limit the amount of space used by a larger block size.

Now, setting pctfree to 75 for an 8KB block size is trying to make the blocks behave rather like 2KB blocks - but it probably isn&#039;t going to work all that well in many cases.

Roughly speaking, in the cases where the 75% trick works, the number of blocks you manage for the 2KB and the 8KB approach will be very similar - and the block &quot;management&quot; is largely about latching and list management, not about what goes on inside the blocks - so the resources used for management will be similar.

The 2KB approach is (to my mind) the nicer one because it will always give you small bitmap chunks and will therefore keep the redo as low as possible. The 8KB approach may degenerate to full block usage (and that&#039;s pretty certain to happen in some cases) - so it&#039;s only a temporary solution unless you keep an eye on the index and rebuild it when necessary. On the other hand, having just the 8KB block size does mean you don&#039;t have to manage the 2KB cache - even if you appear to &quot;waste&quot; a lot of memory some of the time.

The block splitting for the 2KB block approach really shouldn&#039;t be a problem - in fact, if you&#039;re going to get block splitting for the 2KB approach it&#039;s almost certainly the case that you shouldn&#039;t use the 8KB with 75% free. When the 2KB blocks split, you only generate just over 4KB of redo ... when an 8KB block splits you generate a little over 16KB of redo.]]></description>
		<content:encoded><![CDATA[<p>Narenda,</p>
<p>The ideas you&#8217;re working through here are exactly the type of cost/benefit analysis everyone should do when they&#8217;re thinking about  strategic design decisions.</p>
<p>If your most significant problem is the volume of redo generated &#8211; and remember that the rate at which you can write the redo is the limit on the speed the database can operate &#8211; then you may be prepared to &#8220;lose&#8221; other resources to address that problem. </p>
<p>I have pointed out that in this scenario you reduce the volume of redo <b>dramatically</b> by using a smaller block size &#8211; but also suggested that you might &#8220;emulate&#8221; this by trying to limit the amount of space used by a larger block size.</p>
<p>Now, setting pctfree to 75 for an 8KB block size is trying to make the blocks behave rather like 2KB blocks &#8211; but it probably isn&#8217;t going to work all that well in many cases.</p>
<p>Roughly speaking, in the cases where the 75% trick works, the number of blocks you manage for the 2KB and the 8KB approach will be very similar &#8211; and the block &#8220;management&#8221; is largely about latching and list management, not about what goes on inside the blocks &#8211; so the resources used for management will be similar.</p>
<p>The 2KB approach is (to my mind) the nicer one because it will always give you small bitmap chunks and will therefore keep the redo as low as possible. The 8KB approach may degenerate to full block usage (and that&#8217;s pretty certain to happen in some cases) &#8211; so it&#8217;s only a temporary solution unless you keep an eye on the index and rebuild it when necessary. On the other hand, having just the 8KB block size does mean you don&#8217;t have to manage the 2KB cache &#8211; even if you appear to &#8220;waste&#8221; a lot of memory some of the time.</p>
<p>The block splitting for the 2KB block approach really shouldn&#8217;t be a problem &#8211; in fact, if you&#8217;re going to get block splitting for the 2KB approach it&#8217;s almost certainly the case that you shouldn&#8217;t use the 8KB with 75% free. When the 2KB blocks split, you only generate just over 4KB of redo &#8230; when an 8KB block splits you generate a little over 16KB of redo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/#comment-34707</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Fri, 23 Oct 2009 16:02:26 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34707</guid>
		<description><![CDATA[Daniel,
If anything has changed about the appearance of the page, it has nothing to do with me. The people at Wordpress are always tweaking things, so maybe they&#039;ve done something clever to make things balance better on mobile devices.]]></description>
		<content:encoded><![CDATA[<p>Daniel,<br />
If anything has changed about the appearance of the page, it has nothing to do with me. The people at WordPress are always tweaking things, so maybe they&#8217;ve done something clever to make things balance better on mobile devices.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Narendra</title>
		<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/#comment-34697</link>
		<dc:creator><![CDATA[Narendra]]></dc:creator>
		<pubDate>Thu, 22 Oct 2009 08:47:23 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34697</guid>
		<description><![CDATA[&lt;i&gt;&lt;b&gt;If diskspace and buffer memory are not a problem&lt;/b&gt; you may prefer to “waste” space in the 8KB blocks so that Oracle can make best use of the buffer cache through its LRU as the pattern of activity changes throughout the  day. If space (and memory particularly) are at a premium you may choose to go for the smaller block size and deal with the hassle of manual cache management rather than memory to “empty” space&lt;/i&gt;

I think this is very very important, especially the start of the paragraph.
Won&#039;t any gain achieved here be negated by the downside of
a) index consuming larger no of blocks and hence more no. of consistent gets (and possibly physical reads) for queries. This is based on assumtion that bitmap index is absolutely essential, which probably means there are other columns in same table that have bitmap indexes on them and queries generally access data by doing ANDs &amp; ORs on these columns.
b) buffer pool having to manage more number of blocks. Not sure if having to manage more no. of small blocks (2KB) has any overhead but having to manage more no. of 8KB blocks sure will have. Right?
c) more occurances of blocks-splitting (especially with 8KB block size and high PCTFREE approach) during updates (or is that not possible?)]]></description>
		<content:encoded><![CDATA[<p><i><b>If diskspace and buffer memory are not a problem</b> you may prefer to “waste” space in the 8KB blocks so that Oracle can make best use of the buffer cache through its LRU as the pattern of activity changes throughout the  day. If space (and memory particularly) are at a premium you may choose to go for the smaller block size and deal with the hassle of manual cache management rather than memory to “empty” space</i></p>
<p>I think this is very very important, especially the start of the paragraph.<br />
Won&#8217;t any gain achieved here be negated by the downside of<br />
a) index consuming larger no of blocks and hence more no. of consistent gets (and possibly physical reads) for queries. This is based on assumtion that bitmap index is absolutely essential, which probably means there are other columns in same table that have bitmap indexes on them and queries generally access data by doing ANDs &amp; ORs on these columns.<br />
b) buffer pool having to manage more number of blocks. Not sure if having to manage more no. of small blocks (2KB) has any overhead but having to manage more no. of 8KB blocks sure will have. Right?<br />
c) more occurances of blocks-splitting (especially with 8KB block size and high PCTFREE approach) during updates (or is that not possible?)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Stolf</title>
		<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/#comment-34696</link>
		<dc:creator><![CDATA[Daniel Stolf]]></dc:creator>
		<pubDate>Thu, 22 Oct 2009 04:06:26 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34696</guid>
		<description><![CDATA[Very nice post, indeed. But I have a completly off topic question: is this a new mobile version of your page? It&#039;s very nice!]]></description>
		<content:encoded><![CDATA[<p>Very nice post, indeed. But I have a completly off topic question: is this a new mobile version of your page? It&#8217;s very nice!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ASWATH RAO</title>
		<link>http://jonathanlewis.wordpress.com/2009/10/21/bitmap-updates/#comment-34695</link>
		<dc:creator><![CDATA[ASWATH RAO]]></dc:creator>
		<pubDate>Thu, 22 Oct 2009 01:28:57 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=2369#comment-34695</guid>
		<description><![CDATA[Jonathan,

Very nicely written blog on bitmap indexes.  Gives everyone a nice presentation on what to look for when creating bitmap indexes.

Thanks
Aswath Rao]]></description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>Very nicely written blog on bitmap indexes.  Gives everyone a nice presentation on what to look for when creating bitmap indexes.</p>
<p>Thanks<br />
Aswath Rao</p>
]]></content:encoded>
	</item>
</channel>
</rss>
