oracle使用contains、instr或like方法判断是否包含字符串

如数据库中存储了海量的数据,当查询时使用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;

猜你喜欢

转载自linwenan.iteye.com/blog/2220161