<?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: Playing Around with Star Transformations and Bitmap Indexes</title>
	<atom:link href="http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/</link>
	<description>Delivered Intelligence</description>
	<lastBuildDate>Wed, 10 Mar 2010 13:01:07 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Charlie 木匠</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3688</link>
		<dc:creator>Charlie 木匠</dc:creator>
		<pubDate>Thu, 28 Feb 2008 17:25:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3688</guid>
		<description>When can we see your real data benchmark matrix?

Thanks,
Charlie</description>
		<content:encoded><![CDATA[<p>When can we see your real data benchmark matrix?</p>
<p>Thanks,<br />
Charlie</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SQLite Star Query &#171; Gobán Saor</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3684</link>
		<dc:creator>SQLite Star Query &#171; Gobán Saor</dc:creator>
		<pubDate>Thu, 30 Aug 2007 18:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3684</guid>
		<description>[...] as slick as an Oracle 10G star transformation but &#8216;good enough&#8217; for the task at hand. What, I hear you ask, is that task and why [...]</description>
		<content:encoded><![CDATA[<p>[...] as slick as an Oracle 10G star transformation but &#8216;good enough&#8217; for the task at hand. What, I hear you ask, is that task and why [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Rittman</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3681</link>
		<dc:creator>Mark Rittman</dc:creator>
		<pubDate>Thu, 16 Aug 2007 15:15:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3681</guid>
		<description>Jonathan,

Thanks for this, especially the tip about the types of updates that adversely affect bitmap indexes - this is exactly the sort of information I was trying to deduce with the tests I was performing; also thanks for the tip on leaf_blocks vs. blocks on user_segments.

I&#039;ll be putting some more test cases together soon, so will follow your advice on putting the test data together - again, this will be very useful.

Many thanks, Mark.</description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>Thanks for this, especially the tip about the types of updates that adversely affect bitmap indexes &#8211; this is exactly the sort of information I was trying to deduce with the tests I was performing; also thanks for the tip on leaf_blocks vs. blocks on user_segments.</p>
<p>I&#8217;ll be putting some more test cases together soon, so will follow your advice on putting the test data together &#8211; again, this will be very useful.</p>
<p>Many thanks, Mark.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3683</link>
		<dc:creator>Jonathan Lewis</dc:creator>
		<pubDate>Fri, 03 Aug 2007 13:02:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3683</guid>
		<description>Mark,

The trick of using btree indexes in Star Transformations has been around since at least 9.2 - to paraphrase the book (p. 204) &quot;there is no reason why the optimizer can&#039;t decide to do a bitmap/btree conversion at any point in the execution plan&quot;.

The thing about DML on bitmap indexed columns applies most significantly to large numbers of small changes.  Adding 1M rows as a single change to 7M rows is likely to be the least damaging strategy - although I would have expected the leaf_block count to nearly double in at least some of the indexes.  (A less ambiguous test of size would have been to check the leaf_blocks on user_indexes et. al. rather than blocks on user_segments).  A strategy of adding (say) batches of 100 rows and committing, or even - as happens sometimes - single row commits could have a much worse effect prior to 10g. It&#039;s very important to get a good model of how data chnages will actually occur.  (Watch out, also, for big deletes followed by big inserts - nasty things can happen at random intervals for obscure internal technical reaons.

Data modelling for bitmap testing can easily be misleading - copying the same data set N times, for example, will produce a cyclic pattern in the data - hence the indexes - that can give some artificially beneficial, or detrimental, effects on some tests.  I tend to use the mod(), trunc() and combined mod(trunc()) functions to produce deliberate patterns in the data as a way of approximating real data patterns.</description>
		<content:encoded><![CDATA[<p>Mark,</p>
<p>The trick of using btree indexes in Star Transformations has been around since at least 9.2 &#8211; to paraphrase the book (p. 204) &#8220;there is no reason why the optimizer can&#8217;t decide to do a bitmap/btree conversion at any point in the execution plan&#8221;.</p>
<p>The thing about DML on bitmap indexed columns applies most significantly to large numbers of small changes.  Adding 1M rows as a single change to 7M rows is likely to be the least damaging strategy &#8211; although I would have expected the leaf_block count to nearly double in at least some of the indexes.  (A less ambiguous test of size would have been to check the leaf_blocks on user_indexes et. al. rather than blocks on user_segments).  A strategy of adding (say) batches of 100 rows and committing, or even &#8211; as happens sometimes &#8211; single row commits could have a much worse effect prior to 10g. It&#8217;s very important to get a good model of how data chnages will actually occur.  (Watch out, also, for big deletes followed by big inserts &#8211; nasty things can happen at random intervals for obscure internal technical reaons.</p>
<p>Data modelling for bitmap testing can easily be misleading &#8211; copying the same data set N times, for example, will produce a cyclic pattern in the data &#8211; hence the indexes &#8211; that can give some artificially beneficial, or detrimental, effects on some tests.  I tend to use the mod(), trunc() and combined mod(trunc()) functions to produce deliberate patterns in the data as a way of approximating real data patterns.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #56: a Carnival of the Vanities for DBAs &#171; H.Tonguç YILMAZ Oracle Blog</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3680</link>
		<dc:creator>Log Buffer #56: a Carnival of the Vanities for DBAs &#171; H.Tonguç YILMAZ Oracle Blog</dc:creator>
		<pubDate>Fri, 03 Aug 2007 11:57:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3680</guid>
		<description>[...] Mark Rittman of Rittman Mead Consulting on Playing Around with Star Transformations and Bitmap Indexes [...]</description>
		<content:encoded><![CDATA[<p>[...] Mark Rittman of Rittman Mead Consulting on Playing Around with Star Transformations and Bitmap Indexes [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TongucY</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3682</link>
		<dc:creator>TongucY</dc:creator>
		<pubDate>Fri, 03 Aug 2007 08:48:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3682</guid>
		<description>In the book Chapter 8 is for Bitmap Indexes, I searched &quot;bitmap conversion&quot; in the soft copy and found; pg 187 &amp; pg 202 &amp; pg 456

Mr.Lewis&#039;s first book is only for the &quot;fundamentals&quot; he mentions :) So I guess parallel sql, more partitioning, more bitmap indexes and conversions, query rewrite, star transformation etc. will be in the coming books.</description>
		<content:encoded><![CDATA[<p>In the book Chapter 8 is for Bitmap Indexes, I searched &#8220;bitmap conversion&#8221; in the soft copy and found; pg 187 &amp; pg 202 &amp; pg 456</p>
<p>Mr.Lewis&#8217;s first book is only for the &#8220;fundamentals&#8221; he mentions :) So I guess parallel sql, more partitioning, more bitmap indexes and conversions, query rewrite, star transformation etc. will be in the coming books.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Rittman</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3685</link>
		<dc:creator>Mark Rittman</dc:creator>
		<pubDate>Sat, 28 Jul 2007 10:25:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3685</guid>
		<description>Dominic - thanks for the extra insight, what you&#039;re suggesting would seem to make sense,  although it&#039;s not a feature I&#039;ve been aware of up until now.

I have got Jonathan&#039;s CBO book at home with me, I did have a quick look through to see if the phenomenon was mentioned but I couldn&#039;t see anything; if anyone has seen it in the book and knows the page number, I&#039;d be most grateful.

-- regards, Mark</description>
		<content:encoded><![CDATA[<p>Dominic &#8211; thanks for the extra insight, what you&#8217;re suggesting would seem to make sense,  although it&#8217;s not a feature I&#8217;ve been aware of up until now.</p>
<p>I have got Jonathan&#8217;s CBO book at home with me, I did have a quick look through to see if the phenomenon was mentioned but I couldn&#8217;t see anything; if anyone has seen it in the book and knows the page number, I&#8217;d be most grateful.</p>
<p>&#8211; regards, Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dominic Brooks</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3687</link>
		<dc:creator>Dominic Brooks</dc:creator>
		<pubDate>Sat, 28 Jul 2007 08:07:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3687</guid>
		<description>Regarding the &quot;bitmap conversion from rowids&quot; step, the CBO is taking the rowids produced by the predicates against each index - time_id_idx, cust_id_idx and prod_id_idx - and converting these to bits in a bitmap array. Presumably this depends on it anticipating a low cardinality. Then later it can do the &quot;bitmap and&quot; step against these, as if they had come from bitmap indexes.

More often than not, I have seen this b tree conversion in problem plans. But such is the nature of these things, that is probably because I&#039;ve not needed to be aware of plans where this is not a problem.

Unsurprisingly, I&#039;m pretty sure Jonathan Lewis covers this in his CBO book.</description>
		<content:encoded><![CDATA[<p>Regarding the &#8220;bitmap conversion from rowids&#8221; step, the CBO is taking the rowids produced by the predicates against each index &#8211; time_id_idx, cust_id_idx and prod_id_idx &#8211; and converting these to bits in a bitmap array. Presumably this depends on it anticipating a low cardinality. Then later it can do the &#8220;bitmap and&#8221; step against these, as if they had come from bitmap indexes.</p>
<p>More often than not, I have seen this b tree conversion in problem plans. But such is the nature of these things, that is probably because I&#8217;ve not needed to be aware of plans where this is not a problem.</p>
<p>Unsurprisingly, I&#8217;m pretty sure Jonathan Lewis covers this in his CBO book.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Scott</title>
		<link>http://www.rittmanmead.com/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/comment-page-1/#comment-3686</link>
		<dc:creator>Peter Scott</dc:creator>
		<pubDate>Fri, 27 Jul 2007 21:53:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.rittmanmead.com/wp2/2007/07/27/playing-around-with-star-transformations-and-bitmap-indexes/#comment-3686</guid>
		<description>Oracle 10 is supposed to be more tolerant of bitmap updates than Oracle 9.2 and earlier. It might be worthwhile disabling the indexes and then doing the update followed by a rebuild of unusable indexes to compare total time, but I suspect that with you set size you won&#039;t see much effect - it would be more apparent though if your fact table was partitioned so that the rebuild of the local partition indexes is quite quick - but there again not having the indexes in place would slow the update</description>
		<content:encoded><![CDATA[<p>Oracle 10 is supposed to be more tolerant of bitmap updates than Oracle 9.2 and earlier. It might be worthwhile disabling the indexes and then doing the update followed by a rebuild of unusable indexes to compare total time, but I suspect that with you set size you won&#8217;t see much effect &#8211; it would be more apparent though if your fact table was partitioned so that the rebuild of the local partition indexes is quite quick &#8211; but there again not having the indexes in place would slow the update</p>
]]></content:encoded>
	</item>
</channel>
</rss>
