<?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: GATHER_SCHEMA_STATS &amp; ORA-03001: unimplemented feature</title>
	<atom:link href="http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/feed/" rel="self" type="application/rss+xml" />
	<link>http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/</link>
	<description>My experiences with technology...</description>
	<lastBuildDate>Sat, 20 Mar 2010 03:30:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Blogroll Report 03/07/2009 – 10/07/2006 &#171; Coskan&#8217;s Approach to Oracle</title>
		<link>http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/comment-page-1/#comment-7845</link>
		<dc:creator>Blogroll Report 03/07/2009 – 10/07/2006 &#171; Coskan&#8217;s Approach to Oracle</dc:creator>
		<pubDate>Fri, 10 Jul 2009 18:42:34 +0000</pubDate>
		<guid isPermaLink="false">http://amardeepsidhu.com/blog/?p=233#comment-7845</guid>
		<description>[...] Amardeep Sidhu &#8211; GATHER_SCHEMA_STATS &amp; ORA-03001: unimplemented feature [...]</description>
		<content:encoded><![CDATA[<p>[...] Amardeep Sidhu &#8211; GATHER_SCHEMA_STATS &amp; ORA-03001: unimplemented feature [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sidhu</title>
		<link>http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/comment-page-1/#comment-7831</link>
		<dc:creator>Sidhu</dc:creator>
		<pubDate>Thu, 09 Jul 2009 16:59:42 +0000</pubDate>
		<guid isPermaLink="false">http://amardeepsidhu.com/blog/?p=233#comment-7831</guid>
		<description>Thanks man ! We never cross each other in this area of topics for technical blogs ;)</description>
		<content:encoded><![CDATA[<p>Thanks man ! We never cross each other in this area of topics for technical blogs <img src='http://amardeepsidhu.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vaibhav Garg</title>
		<link>http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/comment-page-1/#comment-7830</link>
		<dc:creator>Vaibhav Garg</dc:creator>
		<pubDate>Thu, 09 Jul 2009 16:04:14 +0000</pubDate>
		<guid isPermaLink="false">http://amardeepsidhu.com/blog/?p=233#comment-7830</guid>
		<description>Wow very neat and clean post. 

Didn&#039;t understand much but it looks great :)</description>
		<content:encoded><![CDATA[<p>Wow very neat and clean post. </p>
<p>Didn&#8217;t understand much but it looks great <img src='http://amardeepsidhu.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sidhu</title>
		<link>http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/comment-page-1/#comment-7828</link>
		<dc:creator>Sidhu</dc:creator>
		<pubDate>Thu, 09 Jul 2009 15:23:43 +0000</pubDate>
		<guid isPermaLink="false">http://amardeepsidhu.com/blog/?p=233#comment-7828</guid>
		<description>@ Sarayu &amp; Coskan

I didn&#039;t create this index ;). But to best of my knowledge it has been created to index NULL entries. Something like this:

&lt;pre&gt;SQL&gt; create table st1 as select * from all_objects;

Table created.

SQL&gt; select count(*),status
  2  from st1
  3  group by status;

  COUNT(*) STATUS
---------- -------
         1 INVALID
     23559 VALID

SQL&gt; update st1 set status=null where rownum &lt; 15;

14 rows updated.

SQL&gt; commit;

Commit complete.

SQL&gt; create index ind1_st1 on st1(status);

Index created.

SQL&gt; exec dbms_stats.gather_table_stats(user,&#039;ST1&#039;,cascade=&gt;true);

PL/SQL procedure successfully completed.

SQL&gt; explain plan for select * from st1 where status is null;

Explained.

SQL&gt; @e

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------

--------------------------------------------------------------------
&#124; Id  &#124; Operation            &#124;  Name       &#124; Rows  &#124; Bytes &#124; Cost  &#124;
--------------------------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT     &#124;             &#124;    14 &#124;  1302 &#124;    33 &#124;
&#124;*  1 &#124;  TABLE ACCESS FULL   &#124; ST1         &#124;    14 &#124;  1302 &#124;    33 &#124;
--------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter(&quot;ST1&quot;.&quot;STATUS&quot; IS NULL)

Note: cpu costing is off

14 rows selected.

SQL&gt; create index ind1_st2 on st1(status,1);

Index created.

SQL&gt; explain plan for select * from st1 where status is null;

Explained.

SQL&gt; @e

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------

---------------------------------------------------------------------------
&#124; Id  &#124; Operation                   &#124;  Name       &#124; Rows  &#124; Bytes &#124; Cost  &#124;
---------------------------------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT            &#124;             &#124;    14 &#124;  1302 &#124;     3 &#124;
&#124;   1 &#124;  TABLE ACCESS BY INDEX ROWID&#124; ST1         &#124;    14 &#124;  1302 &#124;     3 &#124;
&#124;*  2 &#124;   INDEX RANGE SCAN          &#124; IND1_ST2    &#124;    14 &#124;       &#124;     2 &#124;
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access(&quot;ST1&quot;.&quot;STATUS&quot; IS NULL)

Note: cpu costing is off

15 rows selected.

SQL&gt; drop index ind1_st2;

Index dropped.

SQL&gt; create index ind1_st2 on st1(status,&#039;1&#039;);

Index created.

SQL&gt; explain plan for select * from st1 where status is null;

Explained.

SQL&gt; @e

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------

---------------------------------------------------------------------------
&#124; Id  &#124; Operation                   &#124;  Name       &#124; Rows  &#124; Bytes &#124; Cost  &#124;
---------------------------------------------------------------------------
&#124;   0 &#124; SELECT STATEMENT            &#124;             &#124;    14 &#124;  1302 &#124;     3 &#124;
&#124;   1 &#124;  TABLE ACCESS BY INDEX ROWID&#124; ST1         &#124;    14 &#124;  1302 &#124;     3 &#124;
&#124;*  2 &#124;   INDEX RANGE SCAN          &#124; IND1_ST2    &#124;    14 &#124;       &#124;     2 &#124;
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access(&quot;ST1&quot;.&quot;STATUS&quot; IS NULL)

Note: cpu costing is off

15 rows selected.

SQL&gt;&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>@ Sarayu &#038; Coskan</p>
<p>I didn&#8217;t create this index <img src='http://amardeepsidhu.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . But to best of my knowledge it has been created to index NULL entries. Something like this:</p>
<pre>SQL> create table st1 as select * from all_objects;

Table created.

SQL> select count(*),status
  2  from st1
  3  group by status;

  COUNT(*) STATUS
---------- -------
         1 INVALID
     23559 VALID

SQL> update st1 set status=null where rownum < 15;

14 rows updated.

SQL> commit;

Commit complete.

SQL> create index ind1_st1 on st1(status);

Index created.

SQL> exec dbms_stats.gather_table_stats(user,'ST1',cascade=>true);

PL/SQL procedure successfully completed.

SQL> explain plan for select * from st1 where status is null;

Explained.

SQL> @e

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------

--------------------------------------------------------------------
| Id  | Operation            |  Name       | Rows  | Bytes | Cost  |
--------------------------------------------------------------------
|   0 | SELECT STATEMENT     |             |    14 |  1302 |    33 |
|*  1 |  TABLE ACCESS FULL   | ST1         |    14 |  1302 |    33 |
--------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   1 - filter("ST1"."STATUS" IS NULL)

Note: cpu costing is off

14 rows selected.

SQL> create index ind1_st2 on st1(status,1);

Index created.

SQL> explain plan for select * from st1 where status is null;

Explained.

SQL> @e

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------

---------------------------------------------------------------------------
| Id  | Operation                   |  Name       | Rows  | Bytes | Cost  |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |             |    14 |  1302 |     3 |
|   1 |  TABLE ACCESS BY INDEX ROWID| ST1         |    14 |  1302 |     3 |
|*  2 |   INDEX RANGE SCAN          | IND1_ST2    |    14 |       |     2 |
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("ST1"."STATUS" IS NULL)

Note: cpu costing is off

15 rows selected.

SQL> drop index ind1_st2;

Index dropped.

SQL> create index ind1_st2 on st1(status,'1');

Index created.

SQL> explain plan for select * from st1 where status is null;

Explained.

SQL> @e

PLAN_TABLE_OUTPUT
------------------------------------------------------------------------------------

---------------------------------------------------------------------------
| Id  | Operation                   |  Name       | Rows  | Bytes | Cost  |
---------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |             |    14 |  1302 |     3 |
|   1 |  TABLE ACCESS BY INDEX ROWID| ST1         |    14 |  1302 |     3 |
|*  2 |   INDEX RANGE SCAN          | IND1_ST2    |    14 |       |     2 |
---------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("ST1"."STATUS" IS NULL)

Note: cpu costing is off

15 rows selected.

SQL></pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Coskan</title>
		<link>http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/comment-page-1/#comment-7816</link>
		<dc:creator>Coskan</dc:creator>
		<pubDate>Thu, 09 Jul 2009 01:12:00 +0000</pubDate>
		<guid isPermaLink="false">http://amardeepsidhu.com/blog/?p=233#comment-7816</guid>
		<description>My question is what is this function based index actually doing?</description>
		<content:encoded><![CDATA[<p>My question is what is this function based index actually doing?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sarayu</title>
		<link>http://amardeepsidhu.com/blog/2009/07/08/gather_schema_stats-ora-03001-unimplemented-feature/comment-page-1/#comment-7812</link>
		<dc:creator>sarayu</dc:creator>
		<pubDate>Wed, 08 Jul 2009 20:59:50 +0000</pubDate>
		<guid isPermaLink="false">http://amardeepsidhu.com/blog/?p=233#comment-7812</guid>
		<description>Why do you ever want to create index as test1(comm,1); 
Any special reasons??</description>
		<content:encoded><![CDATA[<p>Why do you ever want to create index as test1(comm,1);<br />
Any special reasons??</p>
]]></content:encoded>
	</item>
</channel>
</rss>
