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内建的一些函数,是经过相当程度的优化的。
<!-- Generated by Simple Tags 1.2.4 - http://wordpress.org/extend/plugins/simple-tags -->
Tags: oraclelikeInstrzhaolinjnu丹
臣
<!-- Generated by Simple Tags 1.2.4 - http://wordpress.org/extend/plugins/simple-tags -->
Related posts
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description rdf:about="http://rdc.taobao.com/blog/dba/html/246_like_instr_performance.html"
dc:identifier="http://rdc.taobao.com/blog/dba/html/246_like_instr_performance.html"
dc:title="ORACLE中Like与Instr性能大比拼"
trackback:ping="http://rdc.taobao.com/blog/dba/html/246_like_instr_performance.html/trackback" />
</rdf:RDF> -->
--EOF--
Trackback:
http://rdc.taobao.com/blog/dba/html/246_like_instr_performance.html/trackback
分享到:
相关推荐
本文通过实例代码给大家介绍了Oracle中Like与Instr模糊查询性能对比,需要的朋友参考下吧
但是,使用contains谓词有个条件,那就是列要建立索引,也就是说如果上面语句中students表的address列没有建立索引,那么就会报错。 好在我们还有另外一个办法,那就是使用instr,instr的用法如下: select * from ...
主要介绍了Oracle的substr和instr函数简单用法 的相关资料,需要的朋友可以参考下
informix数据库实现oracle环境instr函数功能
1、instr()函数的格式 (俗称:字符查找函数) 格式一:instr( string1, string2 ) // instr(源字符串, 目标字符串) 格式二:instr( string1, string2 [, start_position [, nth_appearance...注:在Oracle/PLSQL中,in
INSTR的用法 Oracle里的Indexof INSTR的用法 Oracle里的Indexof INSTR的用法 Oracle里的Indexof
INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。 语法如下: instr( string1, string2 ...
sql :charindex(‘字符串’,字段)>0 charindex(‘administrator’,MUserID)>0 oracle:instr(字段,’字符串’,1,1) >0 instr(MUserID,’administrator’,1,1)>0 在项目中用到了Oracle中 Instr 这个函数,顺便仔细的...
oracle中instr函数与substr函数详细说明(附实例)[归类].pdf
Oracle中INSTR的用法: INSTR方法的格式为 INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符...
instr函数用于从指定的位置开始,从大型对象中查找第N个与模式匹配的字符串。 用于查找内部大对象中的字符串的instr函数语法如下: dbms_lob.instr( lob_loc in blob, pattern in raw, offset in integer := 1; nth...
Oracle中常用的一些通用符号,帮助了解他们在语句当中所表达的意思
Oracle中使用正则表达式 正则详解正则详解正则详解正则详解正则详解正则详解
教你如何在vb中使用instr函数
/*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBSTR的功能相似4,REGEXP_REPLACE :与REPLACE的功能相似它们在...