<?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: List partitions</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Wed, 19 Jun 2013 18:51:29 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Log Buffer #205, A Carnival of the Vanities for DBAs</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-53513</link>
		<dc:creator><![CDATA[Log Buffer #205, A Carnival of the Vanities for DBAs]]></dc:creator>
		<pubDate>Wed, 13 Feb 2013 16:54:59 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-53513</guid>
		<description><![CDATA[[...] Lewis does a little thought experiment with list [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Lewis does a little thought experiment with list [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37974</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Tue, 30 Nov 2010 22:50:06 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37974</guid>
		<description><![CDATA[Peter,

Thanks for the follow-up.]]></description>
		<content:encoded><![CDATA[<p>Peter,</p>
<p>Thanks for the follow-up.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pete Scott</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37970</link>
		<dc:creator><![CDATA[Pete Scott]]></dc:creator>
		<pubDate>Tue, 30 Nov 2010 20:32:54 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37970</guid>
		<description><![CDATA[In a few idle moments I managed to find a suitable list partitioned table to test my query approach on - the case statement variant did not produce an appreciably different query plan to the simple not equals case. It appeared marginally faster, but not by anything that could be regarded as significant.

The key thing about the test was it was just that a test - an idea (no matter how &#039;off the wall&#039;) is not dismissed out of hand but tested and compared to other approaches - it is all about the process of discovery.]]></description>
		<content:encoded><![CDATA[<p>In a few idle moments I managed to find a suitable list partitioned table to test my query approach on &#8211; the case statement variant did not produce an appreciably different query plan to the simple not equals case. It appeared marginally faster, but not by anything that could be regarded as significant.</p>
<p>The key thing about the test was it was just that a test &#8211; an idea (no matter how &#8216;off the wall&#8217;) is not dismissed out of hand but tested and compared to other approaches &#8211; it is all about the process of discovery.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pete Scott</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37914</link>
		<dc:creator><![CDATA[Pete Scott]]></dc:creator>
		<pubDate>Sat, 27 Nov 2010 23:11:37 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37914</guid>
		<description><![CDATA[Sorry for the late comment
Looking for the NOT is a common occurrence in my world. A few years back I came across (and blogged) an alternate way to construct this type of query.
&lt;code&gt;
select  count(*)
from    area_sales
where   area != &#039;England&#039;
;
&lt;/code&gt;
could be changed to
&lt;code&gt;
select  count(*)
from    area_sales
where   case when area = &#039;England&#039; then 1 else 0 end = 0
&lt;/code&gt;
Of course the case I wrote about was not really about partitioning but it does represent an alternative way to preset a query - and worthy of testing to see if it better approximates what is known of the data. It certainly is not a &quot;one size fits all&quot; solution - test, test, test!]]></description>
		<content:encoded><![CDATA[<p>Sorry for the late comment<br />
Looking for the NOT is a common occurrence in my world. A few years back I came across (and blogged) an alternate way to construct this type of query.<br />
<code><br />
select  count(*)<br />
from    area_sales<br />
where   area != 'England'<br />
;<br />
</code><br />
could be changed to<br />
<code><br />
select  count(*)<br />
from    area_sales<br />
where   case when area = 'England' then 1 else 0 end = 0<br />
</code><br />
Of course the case I wrote about was not really about partitioning but it does represent an alternative way to preset a query &#8211; and worthy of testing to see if it better approximates what is known of the data. It certainly is not a &#8220;one size fits all&#8221; solution &#8211; test, test, test!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #206, A Carnival of the Vanities for DBAs &#124; The Pythian Blog</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37708</link>
		<dc:creator><![CDATA[Log Buffer #206, A Carnival of the Vanities for DBAs &#124; The Pythian Blog]]></dc:creator>
		<pubDate>Mon, 15 Nov 2010 06:27:51 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37708</guid>
		<description><![CDATA[[...] Lewis explains how he tests list partitions, a post which gives an excellent review on how one should go about testing new features in [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Lewis explains how he tests list partitions, a post which gives an excellent review on how one should go about testing new features in [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Local Indexes &#8211; 2 &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37702</link>
		<dc:creator><![CDATA[Local Indexes &#8211; 2 &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Sun, 14 Nov 2010 17:42:26 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37702</guid>
		<description><![CDATA[[...] the cost of using the index t1_id to access the data ? A2: As I pointed out in an earlier note on list partitioned tables, Oracle doesn&#8217;t recognise the (obvious to the human eye) option for partition pruning in this [...]]]></description>
		<content:encoded><![CDATA[<p>[...] the cost of using the index t1_id to access the data ? A2: As I pointed out in an earlier note on list partitioned tables, Oracle doesn&#8217;t recognise the (obvious to the human eye) option for partition pruning in this [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Local Indexes &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37678</link>
		<dc:creator><![CDATA[Local Indexes &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Thu, 11 Nov 2010 22:45:43 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37678</guid>
		<description><![CDATA[[...] a recent article about list partitioned tables I raised some questions about the cases where the optimizer can&#8217;t (yet) do partitioning [...]]]></description>
		<content:encoded><![CDATA[<p>[...] a recent article about list partitioned tables I raised some questions about the cases where the optimizer can&#8217;t (yet) do partitioning [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hemant K Chitale</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37671</link>
		<dc:creator><![CDATA[Hemant K Chitale]]></dc:creator>
		<pubDate>Tue, 09 Nov 2010 09:21:09 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37671</guid>
		<description><![CDATA[My comment was in reply to Christo&#039;s : &quot;Oracle is doing partition *elimination*, yet the most basic form – list partitions – cannot process even simple “not” conditions to eliminate partition from scanning&quot;
I pointed out that Oracle does Pruning.  So it doesn&#039;t do &quot;Elimination&quot; directly but by way of Pruning.

There&#039;s one reference to Elimination at http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/schemaob.htm#CNCPT88868  which goes &quot;Both types of indexes can take advantage of partition elimination (also called partition pruning), which occurs when the optimizer speeds data access by excluding partitions from consideration&quot; when talking of Local Indexes.]]></description>
		<content:encoded><![CDATA[<p>My comment was in reply to Christo&#8217;s : &#8220;Oracle is doing partition *elimination*, yet the most basic form – list partitions – cannot process even simple “not” conditions to eliminate partition from scanning&#8221;<br />
I pointed out that Oracle does Pruning.  So it doesn&#8217;t do &#8220;Elimination&#8221; directly but by way of Pruning.</p>
<p>There&#8217;s one reference to Elimination at <a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/schemaob.htm#CNCPT88868" rel="nofollow">http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/schemaob.htm#CNCPT88868</a>  which goes &#8220;Both types of indexes can take advantage of partition elimination (also called partition pruning), which occurs when the optimizer speeds data access by excluding partitions from consideration&#8221; when talking of Local Indexes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37668</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Mon, 08 Nov 2010 18:35:45 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37668</guid>
		<description><![CDATA[Hemant, 

Are you making a distinction between &quot;elimination&quot; and &quot;pruning&quot; or just pointing out that I ought to be using the term &quot;pruning&quot; rather than &quot;elimination&quot; since that&#039;s the term used virtually everywhere in the manuals ?

There may be some variation across versions in how well Oracle can handle the IN-list, but here&#039;s the execution plan for the (&#039;England&#039;,&#039;Ireland&#039;,&#039;Wales&#039;) query from an 11.1.0.6 database:

[sourcecode gutter=&quot;false&quot;]
-------------------------------------------------------------------------------------
&#124; Id  &#124; Operation              &#124; Name       &#124; Rows  &#124; Bytes &#124; Cost  &#124; Pstart&#124; Pstop &#124;
-------------------------------------------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT       &#124;            &#124;     1 &#124;     8 &#124;    64 &#124;       &#124;       &#124;
&#124;   1 &#124;  SORT AGGREGATE        &#124;            &#124;     1 &#124;     8 &#124;       &#124;       &#124;       &#124;
&#124;   2 &#124;   PARTITION LIST INLIST&#124;            &#124; 22500 &#124;   175K&#124;    64 &#124;KEY(I) &#124;KEY(I) &#124;
&#124;   3 &#124;    TABLE ACCESS FULL   &#124; AREA_SALES &#124; 22500 &#124;   175K&#124;    64 &#124;KEY(I) &#124;KEY(I) &#124;
-------------------------------------------------------------------------------------

[/sourcecode]

Note - there is NO predicate section. So the optimizer has deduced that the whole of the England partition is necessary and sufficient to answer the &#039;England&#039; key, and so on for the other two values. Partition pruning has been applied with perfect precision in this case.]]></description>
		<content:encoded><![CDATA[<p>Hemant, </p>
<p>Are you making a distinction between &#8220;elimination&#8221; and &#8220;pruning&#8221; or just pointing out that I ought to be using the term &#8220;pruning&#8221; rather than &#8220;elimination&#8221; since that&#8217;s the term used virtually everywhere in the manuals ?</p>
<p>There may be some variation across versions in how well Oracle can handle the IN-list, but here&#8217;s the execution plan for the (&#8216;England&#8217;,'Ireland&#8217;,'Wales&#8217;) query from an 11.1.0.6 database:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
-------------------------------------------------------------------------------------
| Id  | Operation              | Name       | Rows  | Bytes | Cost  | Pstart| Pstop |
-------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT       |            |     1 |     8 |    64 |       |       |
|   1 |  SORT AGGREGATE        |            |     1 |     8 |       |       |       |
|   2 |   PARTITION LIST INLIST|            | 22500 |   175K|    64 |KEY(I) |KEY(I) |
|   3 |    TABLE ACCESS FULL   | AREA_SALES | 22500 |   175K|    64 |KEY(I) |KEY(I) |
-------------------------------------------------------------------------------------

</pre>
<p>Note &#8211; there is NO predicate section. So the optimizer has deduced that the whole of the England partition is necessary and sufficient to answer the &#8216;England&#8217; key, and so on for the other two values. Partition pruning has been applied with perfect precision in this case.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hemant K Chitale</title>
		<link>http://jonathanlewis.wordpress.com/2010/11/03/list-partitions/#comment-37665</link>
		<dc:creator><![CDATA[Hemant K Chitale]]></dc:creator>
		<pubDate>Mon, 08 Nov 2010 06:17:18 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=4720#comment-37665</guid>
		<description><![CDATA[It&#039;s not really able to do &quot;Partition Elimination&quot;.  It can do &quot;Partition Pruning&quot; to identify that it needs 3 of 4 partitions (but doesn&#039;t know identify the partitions in the case of &quot;area in ( &#039;England&#039;, &#039;Ireland&#039;, &#039;Wales&#039;)&quot;.]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s not really able to do &#8220;Partition Elimination&#8221;.  It can do &#8220;Partition Pruning&#8221; to identify that it needs 3 of 4 partitions (but doesn&#8217;t know identify the partitions in the case of &#8220;area in ( &#8216;England&#8217;, &#8216;Ireland&#8217;, &#8216;Wales&#8217;)&#8221;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
