likesql语句的优化

likesql语句的优化

ID:8930985

大小:27.50 KB

页数:3页

时间:2018-04-12

likesql语句的优化_第1页
likesql语句的优化_第2页
likesql语句的优化_第3页
资源描述:

《likesql语句的优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、LikeSQL语句的优化LikeSQL语句的优化的一个小测试1.尽量不要使用like'%..%'2.对于like'..%..'(不以%开头),Oracle可以应用colunm上的index3.对于like'%...'的(不以%结尾),可以利用reverse+functionindex的形式,变化成like'..%'具体的测试流程:(测试工具:PLSQLDeveloper)[1]'建测试表和Index,注意,重点在于带reverse的functionindex。同时,一定要使用CBO才行。已连接到OracleDatabase10gEnterp

2、riseEditionRelease10.2.0.1.0已连接为zxdbm_ismpSQL>selectreverse('123')fromdual;REVERSE('123')--------------321SQL>createtabletest_likeasselectobject_id,object_namefromdba_objects;Tablecreated.SQL>createindextest_like_nameontest_like(object_name);Indexcreated.SQL>createindextes

3、t_like_name_reverseontest_like(reverse(object_name));--建反向索引Indexcreated.SQL>analyzetabletest_likecomputestatisticsfortableforallindexes;Tableanalyzed.SQL>setautotracetraceexp[2]'常量开头的like,会利用index,没问题……'SQL>select*fromtest_likewhereobject_namelike'AS%';ExecutionPlan------

4、----------------------------------------------------0SELECTSTATEMENTOptimizer=CHOOSE(Cost=2Card=655Bytes=15720)10TABLEACCESS(BYINDEXROWID)OF'TEST_LIKE'(Cost=2Card=655Bytes=15720)21INDEX(RANGESCAN)OF'TEST_LIKE__NAME'(NON-UNIQUE)(Cost=2Card=118)[3]'开头和结尾都是%,对不起,很难优化'SQL>sele

5、ct*fromtest_likewhereobject_namelike'%%';ExecutionPlan----------------------------------------------------------0SELECTSTATEMENTOptimizer=CHOOSE(Cost=6Card=655Bytes=15720)10TABLEACCESS(FULL)OF'TEST_LIKE'(Cost=6Card=655ytes=15720)[4]'以常量结束,直接写的时候是不能应用index的'SQL>select*fromt

6、est_likewhereobject_namelike'%S';ExecutionPlan----------------------------------------------------------0SELECTSTATEMENTOptimizer=CHOOSE(Cost=6Card=655Bytes=15720)10TABLEACCESS(FULL)OF'TEST_LIKE'(Cost=6Card=655Bytes=15720)[5]'以常量结束的,加个reverse函数,又可以用上index了'(需要反向索引的支持)SQL>s

7、elect*fromtest_likewherereverse(object_name)likereverse('%AS');ExecutionPlan----------------------------------------------------------0SELECTSTATEMENTOptimizer=CHOOSE(Cost=2Card=655Bytes=15720)10TABLEACCESS(BYINDEXROWID)OF'TEST_LIKE'(Cost=2Card=655Bytes=15720)21INDEX(RANGE

8、SCAN)OF'TEST_LIKE__NAME_REVERSE'(NON-UNIQUE)(Cost=2Card=118)转:http://rollingpig.itpub.net

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。