Regexp_like导致Oracle优化器判断失误例子
来源:互联网 发布:wei护肤品怎么样知乎 编辑:程序博客网 时间:2024/05/16 07:06
最近工作中碰到一个SQL,大致如下:
select <select-list>
from tab1, tab2
where tab1.col1=tab2.col2
and tab1.col4='0005'
and regexp_like(decode(:bindvar1,'All','All', tab1.col3),('^(' || regexp_replace(:bindvar1,'[,,]', '|' ) || ')$'));
tab1.col4='0005'是个选择性很弱的谓词。而bindvar1='All',所以这个regexp_like实际上不起作用。
其执行计划:
可以看到E-Rows和A-Rows有巨大偏差。在Tab1表已经收集了统计信息,包括col4,col3上的直方图。
将regexp_like去掉后,可以看到执行计划有了变化:
E-Rows和A-Rows已经相当接近!
0 0
- Regexp_like导致Oracle优化器判断失误例子
- oracle regexp_like介绍和例子
- oracle regexp_like介绍和例子
- Oracle REGEXP_LIKE介绍和例子
- oracle regexp_like介绍和例子
- oracle regexp_like介绍和例子
- oracle regexp_like介绍和例子
- oracle正则表达式 regexp_like介绍和例子
- 【转】Oracle REGEXP_LIKE介绍和例子
- oracle regexp_like like性能测试及优化
- ORACLE REGEXP_LIKE
- Oracle regexp_like
- oracle regexp_like实现字符串中判断某个值是否存在
- oracle 判断字段是否为是数字 regexp_like用法
- 判断失误
- REGEXP_LIKE判断汉字
- Oracle regexp_like 使用案例
- Oracle 正则表达式 regexp_like
- 死锁问题
- 常用边缘检测算子及其特性
- 第三方dll文件使用
- Android Volley完全解析(三),定制自己的Request
- invisible index
- Regexp_like导致Oracle优化器判断失误例子
- android 模拟鼠标/按键事件
- 银行系统 v1.0 至尊版
- Android高级控件----AdapterView与Adapter
- 第一份工作将会对你的职业生涯有很大的影响
- 企业级WEB的负载均衡高可用之LVS+Keepalived
- linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)6 UDP扫描
- Android FrameWork 之Binder机制初识
- Linux下C语言执行MySQL语句