論壇藉助:最佳化sql,null值如何走索引

yy418408247發表於2016-12-14

-- 備註:從論壇藉助過來,方便使用
SQL> create table nulltab(a int,b int);

表已建立。

已用時間:  00: 00: 02.27


SQL> insert into nulltab values(null,2);

已建立 1 行。

已用時間:  00: 00: 00.01
SQL> insert into nulltab values(3,4);

已建立 1 行。

已用時間:  00: 00: 00.01
SQL> commit;

提交完成。

已用時間:  00: 00: 00.01
SQL> select * from nulltab;

         A          B
---------- ----------
                    2
         3          4

已用時間:  00: 00: 00.00
SQL> create index nullidx on nulltab(a);

索引已建立。

已用時間:  00: 00: 00.15
SQL> set autot on
SP2-0618: 無法找到會話識別符號。啟用檢查 PLUSTRACE 角色
SP2-0611: 啟用 STATISTICS 報告時出錯
SQL> select /*+index(nulltab,nullidx)*/* from nulltab where a is not null;

         A          B
---------- ----------
         3          4

已用時間:  00: 00: 00.01

執行計劃
----------------------------------------------------------
Plan hash value: 4242282698

---------------------------------------------------------------------------------------
| Id  | Operation                   | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |         |     1 |    26 |     2   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| NULLTAB |     1 |    26 |     2   (0)| 00:00:01 |
|*  2 |   INDEX FULL SCAN           | NULLIDX |     2 |       |     1   (0)| 00:00:01 |
---------------------------------------------------------------------------------------

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

   2 - filter("A" IS NOT NULL)

Note
-----
   - dynamic sampling used for this statement (level=2)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29494175/viewspace-2130517/,如需轉載,請註明出處,否則將追究法律責任。

相關文章