读书频道 > 网站 > 网页设计 > Oracle Database 11gR2性能调整与优化
2.4.3 使用LIKE
14-01-07    奋斗的小年轻
收藏    我要投稿   
在Oracle认证大师Richard Niemiec的帮助下,系统地识别和排除数据库的性能问题:《Oracle Database 11g R2性能调整与优化》一书详细介绍了最新的监控、故障排除和优化的方法,取自真实世界的案例研究和最佳实立即去当当网订购

在某些情况下,条件中有LIKE关键字会使用索引;而在某些情况下,则不会。LIKE的最常见用法是LIKE '%somevalue%' 或LIKE ' somevalue%' (其中%只能在搜索字符串的结尾处)。上面两种情形中,只有第二种情况,LIKE 'somevalue%',也就是值在开始的时候,可以使用索引。让我们用几个例子来说明。首先,在 scott.emp表的ename列上创建一个索引,这样可以通过使用索引来查找雇员的名字。我们看看使用LIKE的时候,什么时候索引会被用到,什么时候不会。

SQL> create index emp_ename_nu on emp (ename) ;

Index created.

首先看看当时使用LIKE '%somevalue%'的时候,会是什么情况:

SQL> set autotrace traceonly

SQL> select empno, ename, hiredate

2 from scott.emp

3 where ename like '%BLAKE%';

 

Execution Plan

----------------------------------------------------------

Plan hash value: 3956160932

--------------------------------------------------------------------------

|   Id | Operation        | Name | Rows | Bytes | Cost (%CPU)| Time    |

--------------------------------------------------------------------------

|    0 | SELECT STATEMENT |     |    1 |   18 |   3   (0) | 00:00:01 |

|*   1 | TABLE ACCESS FULL | EMP |    1 |   18 |   3   (0) | 00:00:01 |

我们再看看把值放在%前面的情况:

SQL> set autotrace traceonly

SQL> select empno, ename, hiredate

2 from scott.emp

3 where ename like 'BLAKE%' ;

 

Execution Plan

----------------------------------------------------------

Plan hash value: 3445075938

-----------------------------------------------------------------------------------

| Id | Operation                | Name       | Rows| Bytes | Cost (%CPU)| Time|

-----------------------------------------------------------------------------------

| 0 | SELECT STATEMENT          |           | 1 |   18 | 2 (0) |  00:00:01 |

| 1 | TABLE ACCESS BY INDEX ROWID | EMP       | 1 |   18 | 2 (0) |  00:00:01 |

|* 2 | INDEX RANGE SCAN          | EMP_ENAME_NU| 1 |      | 1 (0) |  00:00:01 |

-----------------------------------------------------------------------------------

可以看到,当%在值的前面的时候,索引不会被使用;但是当值在%前面的时候,Oracle可以使用索引。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站