如数据库中存储了海量的数据,当查询时使用like,速度明显变慢。
今天特意测试一下,发现可以使用instr函数来取代like的有明显的提高。
在1KW的的区间测试:
carnumber建立了索引,当然这个是对于某一个字段而言,但是有2个以上的字段,效果就更加明显。
contains: 建立索引的基础上.
select count(1) from passcar dd where instr(dd.carnumber,'粤') = 1 and dd.dcollDate > sysdate - 1;
instr:
select count(1) from passcar dd where instrcontains(carnumber, '粤') and dd.dcollDate > sysdate - 1;
使用like 性能明显有所下降。
select count(1) from passcar dd where dd.carnumber like '赣%' and dd.dcollDate > sysdate - 1;
相关推荐
使用contains谓词有个条件,那就是列要建立索引,本节主要介绍了oracle使用instr或like方法判断是否包含字符串,需要的朋友可以参考下
在实际工作中经常遇到截取两个相同字符串之间的字符的oracle问题,以下是相关语句
NULL 博文链接:https://tangkuo.iteye.com/blog/2257112
oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用
Oracle字符串处理函数: 1.ASCII;2.CHR;3.CONCAT;4.INITCAP;5.INSTR(C1,C2,I,J);6.LENGTH;7.LOWER; 8.UPPER;9.RPAD和LPAD(粘贴字符);10.LTRIM和RTRIM......
ORACLE PL/SQL 字符串函数、数学函数、日期函数 --【字符串函数】 --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符...
oracle 截取字符(substr),检索字符位置(instr) case when then else end语句使用 收藏 常用函数:substr和instr 1.SUBSTR(string,start_position,[length]) 求子字符串,返回字符串 解释:string 元字符串 start_...
INSTR (源字符串, 目标字符串, 起始位置, 匹配序号) 在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。只检索一次,就是说从字符的开始到字符的结尾就结束。 语法如下: instr( string1, string2 ...
substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项...
InStr InStr(string1,string2[,compare]) 返回string1字符串在string2字符串中第一次出现的位置 Split Split(string1,delimiter[,count[,start]]) 将字符串根据delimiter拆分成一维数组,其中delimiter用于标识子...
t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果: SQL> set timing ...
格式一:instr( string1, string2 ) // instr(源字符串, 目标字符串) 格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] ) // instr(源字符串, 目标字符串, 起始位置, 匹配序号) 解析:...
InStr InStr(string1,string2[, compare]) 返回string1字符串在string2字符串中第一次出现的位置 Split Split(string1,delimiter[, count[, start]]) 将字符串根据delimiter拆分成一维数组,其中delimiter用于标识...
对于截取字符串,Oracle中有两个函数substr(),instr()截取规则的字符串使用起来较为方便,这里重新封装了一个函数 --调用函数参数说明: --num_char(str1 varchar2,str2 varchar2,indexs number) --str1 原字符串 --...
INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号) 返回找到的位置,如果找不到则返回0. 例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 在字符串中查找’...
informix数据库实现oracle环境instr函数功能