ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 索引里的NULL值与排序小记

索引里的NULL值与排序小记

原创 Linux操作系统 作者:wei-xh 时间:2011-05-05 14:06:39 0 删除 编辑

apollo@CRMG>create table wxh_tbd1 ( a varchar2(100),b varchar2(100) ,c varchar2(200));

Table created.

apollo@CRMG>insert into wxh_tbd1 select object_type ,status ,NAMESPACE from dba_objects;

apollo@CRMG>create index w_i on wxh_tbd1(a,b,c);

Index created.

apollo@CRMG>exec dbms_stats.gather_table_stats(user,'wxh_tbd1');

PL/SQL procedure successfully completed.

apollo@CRMG>select * from wxh_tbd1 where a='TABLE' AND B IS NULL AND C='c' order by c; 

no rows selected


Execution Plan
----------------------------------------------------------
Plan hash value: 1269858568

-------------------------------------------------------------------------
| Id  | Operation        | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------
|   0 | SELECT STATEMENT |      |     1 |    15 |     1   (0)| 00:00:01 |
|*  1 |  INDEX RANGE SCAN| W_I  |     1 |    15 |     1   (0)| 00:00:01 |
-------------------------------------------------------------------------

apollo@CRMG>select * from wxh_tbd1 where a='TABLE' AND B IS NULL AND C>'c' order by c;

no rows selected


Execution Plan
----------------------------------------------------------
Plan hash value: 1380261624

--------------------------------------------------------------------------
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------
|   0 | SELECT STATEMENT  |      |     1 |    15 |     2  (50)| 00:00:01 |
|   1 |  SORT ORDER BY    |      |     1 |    15 |     2  (50)| 00:00:01 |
|*  2 |   INDEX RANGE SCAN| W_I  |     1 |    15 |     1   (0)| 00:00:01 |
--------------------------------------------------------------------------

第二种情况出现了排序。原因是ORACLE傻B的不知道 (NULL,1) 和(NULL,2)谁大谁小,因此第二种查询就会出现排序,DUMP出索引,索引里也是乱序的

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22034023/viewspace-694507/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2341193