Oracle Sql优化一例---利用函数索引
在awr报告中,发现有个Sql效率很低:
select batch_status from t_batch_info
where BATCH_STATUS='0'
and sys_id='STM06';
查看执行计划发现查询利用了索引,索引中包含了batch_status字段,但是通过以下sql查询:
select batch_status,count(*) from t_batch_info
group by BATCH_STATUS
发现batch_status字段的值很少:
batch_status count(*)
0 40350
1 4237357
2 1227
3 433515
之前sql的查询条件是batch_status='0',它只有4万多条数据,而绝大部分都是1,有400多万条数据,因此虽然用到了索引,但是使用效率低,
为解决这个问题,创建了函数索引,利用null值不进索引的特性,
create index ix_t_batch_info on t_batch_info (decode(BATCH_STATUS,'1',null,'2',null,'3',null,BATCH_STATUS)) online;
而查询语句改成:
select batch_status from t_batch_info
where decode(BATCH_STATUS,'1',null,'2',null,'3',null,BATCH_STATUS)='0'
and sys_id='STM06';
经过验证,效率提高很多。
转载于:https://www.cnblogs.com/coldsword/p/6121549.html
Oracle Sql优化一例---利用函数索引相关推荐
- oracle索引使用例子,Oracle中利用函数索引处理数据倾斜案例
关于B-Tree.Bitmap.函数索引的相关内容请参考另一篇博文: Oracle中B-Tree.Bitmap和函数索引使用案例总结 通常来说,索引选取的数据列最好为分散度高.选择性好.从索引树结构的 ...
- oracle向前推一个小时,oracle SQL里常用的时间函数,经典推荐
oracle SQL里常用的时间函数,经典推荐 (2009-03-11 23:16:54) 标签: 杂谈 常用日期型函数 1.Sysdate 当前日期和时间 SQL> Select sysdat ...
- oracle sql语句加速选项,Oracle SQL优化基本步骤
本空间日志均为一种学习记录. ----------------该文章无法找到原创出自何处.若有侵范,请告知! 最近有尝试做SQL优化.一直不得要领,请逛到这里的高人提供一些优化实例(最好是有优化历程说 ...
- Oracle SQL优化
1.SQL语句尽量用大写的: 因为oracle总是先解析SQL语句,把小写的字母转换成大写的再执行. 2.使用表的别名: 当在SQL语句中连接多个表时, 尽量使用表的别名并把别名前缀于每个列上.这样一 ...
- Oracle SQL 优化原则(实用篇)
由于SQL优化优化起来比较复杂,并且还受环境限制,在开发过程中,写SQL必须遵循以下几点原则: 1.Oracle 采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他Where ...
- Oracle+SQL优化第二弹
SQL 语句性能优化(未完待续) 要使 Oracle SQL 语句具有最优的性能,需要从多方面进行优化,下面分别进行说明. 1 选用合适的 ORACLE 优化器 ORACLE 的优化器共有 3 种: ...
- Oracle SQL优化 总结(大师级别)
SQL 的优化主要涉及几个方面: (1) 相关的统计信息缺失或者不准确 (2) 索引问题 (3) SQL 的本身的效率问题,比如使用绑定变量,批量DML 采用bulk等,这个就考验写 ...
- oracle sql优化
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表driving table)将被最先处 ...
- Oracle SQL优化准则
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): Oracle的解析器按照从右到左的顺序处理FROM子句中的表 名,FROM子句中写在最后的表(基础表 driving table)将被最先 ...
- oracle sql 优化分析点
本文来源:http://www.cnblogs.com/quanweiru/archive/2013/05/24/3096781.html (1) 选择最有效率的表名顺序 ( 只在基于规则的优 ...
最新文章
- 一种解决hadoop搭建出现的各种问题的简单粗暴的办法
- DevExpress的TreeList怎样设置数据源使其显示成单列树形结构
- 10大主流压力测试工具推荐(转载)
- JavaScript事件详解
- SpringBoot 过滤器、拦截器、监听器对比及使用场景!
- 机器视觉开源代码集合(转载)
- 关于Training deep neural networks for binary communication with the Whetstone method的代码实现
- java插件化设计开发
- 日志审计与分析实验4-1(掌握Linux下安装、删除软件的方法)
- mysql临时表更新_MySql 临时表
- 马氏距离 java实现_马氏距离(Mahalanobis Distence) [python]
- Rust语言编程实例100题-036
- 大淘客cms源码三合一导航,自定义底部导航腰部导航
- Python 防止反编译
- 知识蒸馏 | 知识蒸馏理论篇
- 判断字符串数组能否首尾相连
- js 实现繁体和简体之间的转换
- java-数组常用api
- Unity可视化编程插件bolt1.4.15 (一)bolt下载与安装
- C-Lodop提示“网页还没下载完毕,请稍等一下再操作.”