ITPub博客

首页 > 数据库 > Oracle > 论坛借助:优化sql,null值如何走索引

论坛借助:优化sql,null值如何走索引

翻译 Oracle 作者:yy418408247 时间:2016-12-14 11:39:12 0 删除 编辑

-- 备注:从论坛借助过来,方便使用
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博客 ” ,链接:https://blog.itpub.net/29494175/viewspace-2130517/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
游戏是我的全部图景,我将演绎所有的游戏角色,我是每个活着角色的传奇。 --开心研

注册时间:2014-02-19

  • 博文量
    44
  • 访问量
    63770