oracle 性能优化操作一:避免对列的操作
来源:互联网 发布:linux新建txt文件命令 编辑:程序博客网 时间:2024/05/22 06:35
任何对列的操作都可能导致全表扫描,这里所谓的操作包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等式的右边,
甚至去掉函数。
例1:下列SQL条件语句中的列都建有恰当的索引,但30万行数据情况下执行速度却非常慢:
select * from record where substrb(CardNo,1,4)='5378'(13秒) select * from record where amount/30< 1000(11秒) select * from record where to_char(ActionTime,'yyyymmdd')='19991201'(10秒)
由于where子句中对列的任何操作结果都是在SQL运行时逐行计算得到的,因此它不得不进行表扫描,而没有使用该列上面的索引;
如果这些结果在查询编译时就能得到,那么就可以被SQL优化器优化,使用索引,避免表扫描,因此将SQL重写如下:
select * from record where CardNo like '5378%'(< 1秒)select * from record where amount < 1000*30(< 1秒)select * from record where ActionTime= to_date ('19991201' ,'yyyymmdd')(< 1秒)
23 1
- oracle 性能优化操作一:避免对列的操作
- oracle 性能优化操作一:避免对列的操作
- oracle 性能优化操作二:避免不必要的类型转换
- oracle 性能优化操作二:避免不必要的类型转换
- oracle 对表的操作(列)
- oracle的列操作
- Oracle的列操作
- 前端性能优化:DOM操作标签对性能的影响
- oracle 性能优化操作:总结
- oracle 性能优化操作:总结
- 对mysql列的操作
- 消息对列的操作
- 性能优化之避免在循环里面操作IO
- oracle 性能优化操作三:增加查询的范围限制
- oracle 性能优化操作十四: 使用基于函数的索引
- oracle 性能优化操作三:增加查询的范围限制
- oracle 性能优化操作十四: 使用基于函数的索引
- oracle对BLOB类型数据的操作与性能问题
- spring配置文件解析
- : android 手机如何访问facebook,twitter等国外知名网站
- java数组排序
- 给自己的记录:从Two Sum开始之前的Submission记录没有被保存
- 雷军晒小米2014年业绩:含税收入743亿元 出货6112万
- oracle 性能优化操作一:避免对列的操作
- Objective-C 之同步请求、异步请求、GET请求、POST请求
- VS2015 Android-APP环境的配置
- 让程序在崩溃时体面的退出之SEH
- bootstrap, boosting, bagging 几种方法的联系
- mysql 1对多--分页查询
- 随机数据库规则
- [cocos2d-x 2.0.4][iOS7]图片加载错误
- 新浪云绑定独立域名教程