oracle 性能优化操作十二: 用Case语句合并多重扫描
2015-01-07 08:49
441 查看
我们常常必须基于多组数据表计算不同的聚集。例如下例通过三个独立查询:
这样我们需要进行三次全表查询,但是如果我们使用case语句:
这样查询的结果一样,但是执行计划只进行了一次全表查询。
select count(*) from emp where sal<1000; select count(*) from emp where sal between 1000 and 5000; select count(*) from emp where sal>5000;
这样我们需要进行三次全表查询,但是如果我们使用case语句:
select count (sale when sal <1000 then 1 else null end) count_poor, count (sale when between 1000 and 5000 then 1 else null end) count_blue_collar, count (sale when sal >5000 then 1 else null end) count_poor from emp;
这样查询的结果一样,但是执行计划只进行了一次全表查询。
相关文章推荐
- oracle 性能优化操作十二: 用Case语句合并多重扫描
- oracle 性能优化操作十八: 决定使用全表扫描还是使用索引
- oracle 性能优化操作十八: 决定使用全表扫描还是使用索引
- oracle sql语句性能优化
- oracle sql语句性能优化
- Oracle性能优化之SQL语句
- oracle 性能优化操作五:尽量去掉 "<>"
- oracle 性能优化操作十四: 使用基于函数的索引
- oracle 性能优化操作四:尽量去掉"IN"、"OR"
- Oracle性能优化学习笔记之共享Sql语句
- oracle 性能优化操作六: 去掉Where子句中的IS NULL和IS NOT NULL
- oracle 性能优化操作二:避免不必要的类型转换
- oracle 性能优化操作十三: 使用nls_date_format
- SQL CASE WHEN语句性能优化
- oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
- oracle管理优化必备语句以及oracle SQL语句性能调整
- Oracle语句性能优化锦集
- Oracle性能优化学习笔记之共享Sql语句
- oracle 性能优化操作十: 分解复杂查询,用常量代替变量
- oracle 性能优化操作九: 屏蔽无用索引