ITPub博客

首页 > 数据库 > Oracle > ORACLE中Like与Instr性能大比拼

ORACLE中Like与Instr性能大比拼

Oracle 作者:caoming0512 时间:2013-12-09 20:28:10 0 删除 编辑

Oracle 中INSTR方法

INSTR方法的花式为
INSTR(源字符串, 方针字符串, 早先位置, 婚配序号)

例 如:INSTR("CORPORATE FLOOR","OR", 3, 2)中,源字符串为"CORPORATE FLOOR", 方针字符串为"OR",早先位置为3,取第2个婚配项的位置。

默许查找次第为从左到左。当早先位置为负数的时候,从左边开初查找。

所 以SELECT INSTR("CORPORATE FLOOR", "OR", -1, 1) "Instring" FROM DUAL的隐示结局是

Instring
——————
14

t表中快要有1100万数据,很多时候,我们要进行字符串婚配,正在SQL语句中,我们泛泛应用like来到达我们搜刮的方针。但颠末实践测试发现,like的效 率取instr函数好异相等大年夜。下里是一些测试结局:

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://blog.163.com/cuitianlin044@126/blog/static/62851592201061421033283/>


<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22046106/viewspace-1115558/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-07-05