sql优化
2016-06-14 09:01
369 查看
这是原始的sql
查询时快时慢,我们借助pl/sql来看看它的执行计划:可以看到,当优化目标为rule时,它是进行的全表扫描
当优化目标为choose时,它是走的索引
实际是,当我们没有指定索引时,数据库会按照自己认为的最优化的方式去执行.
接下来,我们将这条sql优化一下,给它指定索引,在统计个数时,是可以把排序去掉的,而且统计个数时最好不要多表关联查询.优化之后就是这样子的了
我们再来看看它的执行计划,当选择rule时
当选择choose时
select COUNT(1) from veh_passrec ve where ve.hphm = '湘E4TT52' and ve.gcsj > to_date('2016-06-12 17:16', 'yyyy-mm-dd hh24:mi:ss') and ve.GCSJ < to_date('2016-06-13 17:16', 'yyyy-mm-dd hh24:mi:ss') order by ve.GCSJ asc;
查询时快时慢,我们借助pl/sql来看看它的执行计划:可以看到,当优化目标为rule时,它是进行的全表扫描
当优化目标为choose时,它是走的索引
实际是,当我们没有指定索引时,数据库会按照自己认为的最优化的方式去执行.
接下来,我们将这条sql优化一下,给它指定索引,在统计个数时,是可以把排序去掉的,而且统计个数时最好不要多表关联查询.优化之后就是这样子的了
select /*+index(ve INDEX_PASSREC_HPHM_GCSJ)+*/ COUNT(1) from veh_passrec ve where ve.hphm = '湘E4TT52' and ve.gcsj > to_date('2016-06-12 17:16', 'yyyy-mm-dd hh24:mi:ss') and ve.GCSJ < to_date('2016-06-13 17:16', 'yyyy-mm-dd hh24:mi:ss')
我们再来看看它的执行计划,当选择rule时
当选择choose时
相关文章推荐
- SQLServer 优化SQL语句 in 和not in的替代方案
- mysql数据库sql优化原则(经验总结)
- 如何利用oracle第三方工具做数据库的性能优化
- 总结SQL执行进展优化方法
- 优化 SQL SELECT 语句性能的 6 个简单技巧
- 有意思的 SQL语句优化经历
- sql优化,数据缓存和页面静态化
- MySQL中优化常用的查询sql语
- SQL优化原则
- SQL语句及数据库优化
- 简单说下SQL优化
- MySql 里的IFNULL、NULLIF和ISNULL用法
- oracle sql性能优化
- 简化ABAP SQL语句
- mysql优化篇(一)
- SQL优化
- 数据库优化
- 数据库SQL优化大总结之 百万级数据库优化方案
- update的优化
- oracle走错索引不出结果