我是靠谱客的博主 彪壮墨镜,最近开发中收集的这篇文章主要介绍like效率 regexp_Oracle中like效率正则表达式浅析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Oracle 中like常用但是其效率不是高。

特别是使用%a%-----》全局扫描,没有利用到任何索引。

情况可以的条件尽量下使用a%------》可以利用正序的索引。

%a------》可以利用反序的索引(当然得已有反序的索引)。

使用instr函数取代like查询,可提高效率,在海量数据中效果尤其明显。

1.%a%方式:

select * from pub_yh_bm t

where instr(t.chr_bmdm,'2')>0

等份于:

select * from pub_yh_bm t

where t.chr_bmdm like '%2%'

2.%a方式:

select * from pub_yh_bm t

where instr(t.chr_bmdm,'110101')=length(t.chr_bmdm)-length('110101')+1

等份于:

select * from pub_yh_bm t

where t.chr_bmdm like '%110101'

3.a%方式:

select * from pub_yh_bm t

where instr(t.chr_bmdm,'11010101')=1

等份于:

select * from pub_yh_bm t

where t.chr_bmdm like '11010101%'

ORACLE中的支持正则表达式的函数主要有下面四个:

最后

以上就是彪壮墨镜为你收集整理的like效率 regexp_Oracle中like效率正则表达式浅析的全部内容,希望文章能够帮你解决like效率 regexp_Oracle中like效率正则表达式浅析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部