<?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: IOUG Day 4</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Fri, 24 May 2013 13:27:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Star Transformation &#8211; 2 &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-41453</link>
		<dc:creator><![CDATA[Star Transformation &#8211; 2 &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Fri, 26 Aug 2011 06:02:53 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-41453</guid>
		<description><![CDATA[[...] important case where this is always true &#8211; when you&#8217;re running Standard Edition, which doesn&#8217;t support bitmap indexes. So if you&#8217;re running SE and want to do star transformations &#8211; you now know [...]]]></description>
		<content:encoded><![CDATA[<p>[...] important case where this is always true &#8211; when you&#8217;re running Standard Edition, which doesn&#8217;t support bitmap indexes. So if you&#8217;re running SE and want to do star transformations &#8211; you now know [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Collaborate09 thoughts&#8230; &#124; Oracle</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-34117</link>
		<dc:creator><![CDATA[Collaborate09 thoughts&#8230; &#124; Oracle]]></dc:creator>
		<pubDate>Tue, 11 Aug 2009 09:49:44 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-34117</guid>
		<description><![CDATA[[...] pretty smart guy when it comes to Oracle knowledge) posted about some things he discovered for the first time.&#160; I strongly encourage everyone to attend at least one event if possible every year &#8211; to [...]]]></description>
		<content:encoded><![CDATA[<p>[...] pretty smart guy when it comes to Oracle knowledge) posted about some things he discovered for the first time.&#160; I strongly encourage everyone to attend at least one event if possible every year &#8211; to [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #146: a Carnival of the Vanities for DBAs &#124; Pythian Group Blog</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-33007</link>
		<dc:creator><![CDATA[Log Buffer #146: a Carnival of the Vanities for DBAs &#124; Pythian Group Blog]]></dc:creator>
		<pubDate>Fri, 15 May 2009 17:00:14 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-33007</guid>
		<description><![CDATA[[...] start with Jonathan Lewis&#8217;s report from IOUG Day 4: &#8221; Not so much a little gem today as a little surprise and a few consequential thoughts. In a [...]]]></description>
		<content:encoded><![CDATA[<p>[...] start with Jonathan Lewis&#8217;s report from IOUG Day 4: &#8221; Not so much a little gem today as a little surprise and a few consequential thoughts. In a [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gary</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-32947</link>
		<dc:creator><![CDATA[Gary]]></dc:creator>
		<pubDate>Sun, 10 May 2009 23:00:35 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-32947</guid>
		<description><![CDATA[I checked Chen&#039;s results on an 11.1.0.7 Standard Edition and came out with the same plans. So nothing has changed there. None of the bitmap system parameters (public or hidden) are set to false, so it isn&#039;t simply down to different defaults.]]></description>
		<content:encoded><![CDATA[<p>I checked Chen&#8217;s results on an 11.1.0.7 Standard Edition and came out with the same plans. So nothing has changed there. None of the bitmap system parameters (public or hidden) are set to false, so it isn&#8217;t simply down to different defaults.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-32938</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sat, 09 May 2009 10:17:34 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-32938</guid>
		<description><![CDATA[Chen,

Thanks for that - I think you&#039;ve covered all the bases.  

Tentative conclusion: if you&#039;re using 9i Standard Edition, then some of your queries may stop using &lt;b&gt;and_equal()&lt;/b&gt; execution plans when you upgrade to 10g Standard Edition and find some other less efficient plan. 

Anyone in this position might want to run a few scans of &lt;b&gt;v$sql_plan&lt;/b&gt; before upgrading checking for &lt;em&gt;&quot;operation = &#039;AND-EQUAL&#039;&quot;&lt;/em&gt; to find the SQL at risk.

&lt;i&gt;&quot;I couldn&#039;t resist ...&quot;&lt;/i&gt;I shall, however, resist mentioning a few of the other little things I&#039;ve been waiting to test against SE - otherwise you might end up spend all week-end at your computer running my experiments ;)
]]></description>
		<content:encoded><![CDATA[<p>Chen,</p>
<p>Thanks for that &#8211; I think you&#8217;ve covered all the bases.  </p>
<p>Tentative conclusion: if you&#8217;re using 9i Standard Edition, then some of your queries may stop using <b>and_equal()</b> execution plans when you upgrade to 10g Standard Edition and find some other less efficient plan. </p>
<p>Anyone in this position might want to run a few scans of <b>v$sql_plan</b> before upgrading checking for <em>&#8220;operation = &#8216;AND-EQUAL&#8217;&#8221;</em> to find the SQL at risk.</p>
<p><i>&#8220;I couldn&#8217;t resist &#8230;&#8221;</i>I shall, however, resist mentioning a few of the other little things I&#8217;ve been waiting to test against SE &#8211; otherwise you might end up spend all week-end at your computer running my experiments ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chen Shapira</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-32937</link>
		<dc:creator><![CDATA[Chen Shapira]]></dc:creator>
		<pubDate>Fri, 08 May 2009 22:40:44 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-32937</guid>
		<description><![CDATA[I couldn&#039;t resist and tried it on the 9.2.0.7 that was on the &quot;must upgrade this quarter&quot; plan for the last 2 years:
&lt;code&gt;
Execution Plan
----------------------------------------------------------
 &#160; 0 &#160; &#160; &#160;SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=1 Bytes=117)
 &#160; 1 &#160; &#160;0 &#160; TABLE ACCESS (BY INDEX ROWID) OF &#039;T2&#039; (Cost=4 Card=1 Bytes=117)
 &#160; 2 &#160; &#160;1 &#160; &#160; AND-EQUAL
 &#160; 3 &#160; &#160;2 &#160; &#160; &#160; INDEX (RANGE SCAN) OF &#039;T2_B1&#039; (NON-UNIQUE)
 &#160; 4 &#160; &#160;2 &#160; &#160; &#160; INDEX (RANGE SCAN) OF &#039;T2_B2&#039; (NON-UNIQUE) (Cost=1 Card=60)


You got it :)
AND-EQUAL is used, not full-scan.

Quiet amazing, really.]]></description>
		<content:encoded><![CDATA[<p>I couldn&#8217;t resist and tried it on the 9.2.0.7 that was on the &#8220;must upgrade this quarter&#8221; plan for the last 2 years:<br />
<code><br />
Execution Plan<br />
----------------------------------------------------------<br />
 &nbsp; 0 &nbsp; &nbsp; &nbsp;SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=1 Bytes=117)<br />
 &nbsp; 1 &nbsp; &nbsp;0 &nbsp; TABLE ACCESS (BY INDEX ROWID) OF 'T2' (Cost=4 Card=1 Bytes=117)<br />
 &nbsp; 2 &nbsp; &nbsp;1 &nbsp; &nbsp; AND-EQUAL<br />
 &nbsp; 3 &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; INDEX (RANGE SCAN) OF 'T2_B1' (NON-UNIQUE)<br />
 &nbsp; 4 &nbsp; &nbsp;2 &nbsp; &nbsp; &nbsp; INDEX (RANGE SCAN) OF 'T2_B2' (NON-UNIQUE) (Cost=1 Card=60)</p>
<p>You got it :)<br />
AND-EQUAL is used, not full-scan.</p>
<p>Quiet amazing, really.</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-32934</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Fri, 08 May 2009 21:24:47 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-32934</guid>
		<description><![CDATA[Chen,

Fantastic, I think that&#039;s beginning to look fairly conclusive - and I think it highlights an interesting case. 

I think earlier versions of Oracle would probably do the AND-EQUAL at that point, but 10.2 won&#039;t because it&#039;s deprecated, but SE can&#039;t do the expected bitmap conversion to compensate.]]></description>
		<content:encoded><![CDATA[<p>Chen,</p>
<p>Fantastic, I think that&#8217;s beginning to look fairly conclusive &#8211; and I think it highlights an interesting case. </p>
<p>I think earlier versions of Oracle would probably do the AND-EQUAL at that point, but 10.2 won&#8217;t because it&#8217;s deprecated, but SE can&#8217;t do the expected bitmap conversion to compensate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chen Shapira</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-32933</link>
		<dc:creator><![CDATA[Chen Shapira]]></dc:creator>
		<pubDate>Fri, 08 May 2009 21:07:18 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-32933</guid>
		<description><![CDATA[Still no bitmap conversion:
&lt;code&gt;
Execution Plan
----------------------------------------------------------
Plan hash value: 1513984157

--------------------------------------------------------------------------
&#124; Id &#160;&#124; Operation &#160; &#160; &#160; &#160; &#124; Name &#124; Rows &#160;&#124; Bytes &#124; Cost (%CPU)&#124; Time &#160; &#160; &#124;
--------------------------------------------------------------------------
&#124; &#160; 0 &#124; SELECT STATEMENT &#160;&#124; &#160; &#160; &#160;&#124; &#160; &#160; 1 &#124; &#160; 117 &#124; &#160; &#160;13 &#160; (0)&#124; 00:00:01 &#124;
&#124;* &#160;1 &#124; &#160;TABLE ACCESS FULL&#124; T2 &#160; &#124; &#160; &#160; 1 &#124; &#160; 117 &#124; &#160; &#160;13 &#160; (0)&#124; 00:00:01 &#124;
--------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(&quot;B1&quot;=20 AND &quot;B2&quot;=20)
&lt;/code&gt;
]]></description>
		<content:encoded><![CDATA[<p>Still no bitmap conversion:<br />
<code><br />
Execution Plan<br />
----------------------------------------------------------<br />
Plan hash value: 1513984157</p>
<p>--------------------------------------------------------------------------<br />
| Id &nbsp;| Operation &nbsp; &nbsp; &nbsp; &nbsp; | Name | Rows &nbsp;| Bytes | Cost (%CPU)| Time &nbsp; &nbsp; |<br />
--------------------------------------------------------------------------<br />
| &nbsp; 0 | SELECT STATEMENT &nbsp;| &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; 1 | &nbsp; 117 | &nbsp; &nbsp;13 &nbsp; (0)| 00:00:01 |<br />
|* &nbsp;1 | &nbsp;TABLE ACCESS FULL| T2 &nbsp; | &nbsp; &nbsp; 1 | &nbsp; 117 | &nbsp; &nbsp;13 &nbsp; (0)| 00:00:01 |<br />
--------------------------------------------------------------------------</p>
<p>Predicate Information (identified by operation id):<br />
---------------------------------------------------</p>
<p>   1 - filter("B1"=20 AND "B2"=20)<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-32932</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Fri, 08 May 2009 20:55:15 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-32932</guid>
		<description><![CDATA[Chen,

That&#039;s interesting; thanks for running the test. It really does suggest that the whole bitmap code path might be blocked in Standard Edition.

If you have a few minutes could you try a simpler query just to see if that works, e.g: &lt;code&gt;select * from t2 where b1 = 20 and b2 = 20&lt;/code&gt;, with the same &lt;b&gt;index_combine()&lt;/b&gt; hint.]]></description>
		<content:encoded><![CDATA[<p>Chen,</p>
<p>That&#8217;s interesting; thanks for running the test. It really does suggest that the whole bitmap code path might be blocked in Standard Edition.</p>
<p>If you have a few minutes could you try a simpler query just to see if that works, e.g: <code>select * from t2 where b1 = 20 and b2 = 20</code>, with the same <b>index_combine()</b> hint.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: prodlife</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/08/ioug-day-4/#comment-32931</link>
		<dc:creator><![CDATA[prodlife]]></dc:creator>
		<pubDate>Fri, 08 May 2009 18:45:47 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1150#comment-32931</guid>
		<description><![CDATA[I happened to have 10.2.0.3 standard edition laying around.

So I ran the example from: http://jonathanlewis.wordpress.com/2007/02/08/index-combine/

And got the following plan:
&lt;code&gt;
Execution Plan
----------------------------------------------------------
Plan hash value: 1755794669
--------------------------------------------------------------------------------
&#124; Id &#160;&#124; Operation &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#124; Name &#160;&#124; Rows &#160;&#124; Bytes &#124; Cost (%CPU)&#124; Time &#160; &#160; &#124;
--------------------------------------------------------------------------------------
&#124; &#160; 0 &#124; SELECT STATEMENT &#160; &#160; &#160; &#160; &#160; &#160; &#124; &#160; &#160; &#160; &#124; &#160; &#160; 5 &#124; &#160; 125 &#124; &#160; &#160;40 &#160; (0)&#124; 00:00:01 &#124;
&#124; &#160; 1 &#124; &#160;NESTED LOOPS &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#124; &#160; &#160; &#160; &#124; &#160; &#160; 5 &#124; &#160; 125 &#124; &#160; &#160;40 &#160; (0)&#124; 00:00:01 &#124;
&#124; &#160; 2 &#124; &#160; TABLE ACCESS BY INDEX ROWID&#124; T1 &#160; &#160;&#124; &#160; &#160; 3 &#124; &#160; &#160;24 &#124; &#160; &#160; 4 &#160; (0)&#124; 00:00:01 &#124;
&#124;* &#160;3 &#124; &#160; &#160;INDEX RANGE SCAN &#160; &#160; &#160; &#160; &#160;&#124; T1_N1 &#124; &#160; &#160; 3 &#124; &#160; &#160; &#160; &#124; &#160; &#160; 1 &#160; (0)&#124; 00:00:01 &#124;
&#124;* &#160;4 &#124; &#160; TABLE ACCESS FULL &#160; &#160; &#160; &#160; &#160;&#124; T2 &#160; &#160;&#124; &#160; &#160; 2 &#124; &#160; &#160;34 &#124; &#160; &#160;12 &#160; (0)&#124; 00:00:01 &#124;
--------------------------------------------------------------------------------
&lt;/code&gt;

No &quot;BITMAP CONVERSION TO ROWIDS&quot; in sight :)

Same test on Enterprise Edition gave the expected plan you posted in the &quot;Index Combine&quot; blog post.]]></description>
		<content:encoded><![CDATA[<p>I happened to have 10.2.0.3 standard edition laying around.</p>
<p>So I ran the example from: <a href="http://jonathanlewis.wordpress.com/2007/02/08/index-combine/" rel="nofollow">http://jonathanlewis.wordpress.com/2007/02/08/index-combine/</a></p>
<p>And got the following plan:<br />
<code><br />
Execution Plan<br />
----------------------------------------------------------<br />
Plan hash value: 1755794669<br />
--------------------------------------------------------------------------------<br />
| Id &nbsp;| Operation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| Name &nbsp;| Rows &nbsp;| Bytes | Cost (%CPU)| Time &nbsp; &nbsp; |<br />
--------------------------------------------------------------------------------------<br />
| &nbsp; 0 | SELECT STATEMENT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; 5 | &nbsp; 125 | &nbsp; &nbsp;40 &nbsp; (0)| 00:00:01 |<br />
| &nbsp; 1 | &nbsp;NESTED LOOPS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; 5 | &nbsp; 125 | &nbsp; &nbsp;40 &nbsp; (0)| 00:00:01 |<br />
| &nbsp; 2 | &nbsp; TABLE ACCESS BY INDEX ROWID| T1 &nbsp; &nbsp;| &nbsp; &nbsp; 3 | &nbsp; &nbsp;24 | &nbsp; &nbsp; 4 &nbsp; (0)| 00:00:01 |<br />
|* &nbsp;3 | &nbsp; &nbsp;INDEX RANGE SCAN &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| T1_N1 | &nbsp; &nbsp; 3 | &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; 1 &nbsp; (0)| 00:00:01 |<br />
|* &nbsp;4 | &nbsp; TABLE ACCESS FULL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| T2 &nbsp; &nbsp;| &nbsp; &nbsp; 2 | &nbsp; &nbsp;34 | &nbsp; &nbsp;12 &nbsp; (0)| 00:00:01 |<br />
--------------------------------------------------------------------------------<br />
</code></p>
<p>No &#8220;BITMAP CONVERSION TO ROWIDS&#8221; in sight :)</p>
<p>Same test on Enterprise Edition gave the expected plan you posted in the &#8220;Index Combine&#8221; blog post.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
