LikeSQL语句的优化.doc_第1页
LikeSQL语句的优化.doc_第2页
LikeSQL语句的优化.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Like SQL语句的优化Like SQL语句的优化的一个小测试1.尽量不要使用 like %.% 2.对于 like .%. (不以 % 开头),Oracle可以应用 colunm上的index3.对于 like %. 的 (不以 % 结尾),可以利用reverse + function index 的形式,变化成 like .%具体的测试流程: (测试工具:PLSQL Developer)1 建测试表和Index,注意,重点在于带reverse的function index。同时,一定要使用CBO才行。已连接到 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 已连接为 zxdbm_ismpSQL select reverse(123) from dual;REVERSE(123)-321SQL create table test_like as select object_id,object_name from dba_objects; Table created.SQL create index test_like_name on test_like(object_name);Index created.SQL create index test_like_name_reverse on test_like(reverse(object_name); -建反向索引Index created.SQL analyze table test_like compute statistics for table for all indexes;Table analyzed. SQL set autotrace trace exp2 常量开头的like , 会利用index ,没问题 SQL select * from test_like where object_name like AS%;Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=655 Bytes=15720)1 0 TABLE ACCESS (BY INDEX ROWID) OF TEST_LIKE (Cost=2 Card=655Bytes=15720)2 1 INDEX (RANGE SCAN) OF TEST_LIKE_NAME (NON-UNIQUE) (Cost=2 Card=118)3 开头和结尾都是 % ,对不起,很难优化SQL select * from test_like where object_name like %;Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=655 Bytes=15720)1 0 TABLE ACCESS (FULL) OF TEST_LIKE (Cost=6 Card=655 ytes=15720)4 以常量结束,直接写的时候是不能应用index的SQL select * from test_like where object_name like %S;Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE (Cost=6 Card=655 Bytes=15720)1 0 TABLE ACCESS (FULL) OF TEST_LIKE (Cost=6 Card=655 Bytes=15720)5 以常量结束的,加个reverse 函数,又可以用上index了(需要反向索引的支持)SQL select * from test_like where reverse(object_name)like reverse(%AS);Execution Plan-0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=655 Bytes=15720)1 0 TABLE ACCESS (BY INDEX ROWID) OF TEST_LIKE (Cost=2 Card=655 Bytes=15720)2 1 INDEX (RANGE SCAN) OF TEST

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论