oracle用instr代替like效率比拼

(2013-03-26 11:40:23)

t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在语句中,我们通常使用来达到我们搜索的目标。但经过实际发现,like的效率与函数差别相当大。下面是一些测试结果:

SQL> set timing on

SQL> select count(*) from t where instr(title,’手册’)>0;

COUNT(*)

———-

65881

Elapsed: 00:00:11.04

SQL> select count(*) from t where title like ‘%手册%’;

COUNT(*)

———-

65881

Elapsed: 00:00:31.47

SQL> select count(*) from t where instr(title,’手册’)=0;

COUNT(*)

———-

11554580

Elapsed: 00:00:11.31

SQL> select count(*) from t where title not like ‘%手册%’;

COUNT(*)

———-

11554580

另外,我在另外一个2亿多的表,使用8个并行,使用like查询很久都不出来结果,但使用instr,4分钟即完成查找,性能是相当的好。这些小技巧用好,工作效率提高不少。通过上面的测试说明,ORACLE内建的一些函数,是经过相当程度的优化的。

其他:

http://space.itpub.net/15881763/viewspace-683307

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐