先写我的思路,求高手指点
优化思路:
一.查看执行计划1.尽可能减少访问数据库次数。
2.要选择合适访问表方式,通过全表扫描方式,还是通过rowid的访问方式。
(结果数据是占全表的大部分或者表很小时,用全表扫描可能比索引更高效。)二.查看能否共享SQL1.是否能共享SQL,避免重复解析三.关注细节,谁比谁高效
1.>=比>高效
2.union比or高效
3.in比or高效
4.union all 比union高效
5.exist比in高效
6.not exist比not in高效四.关注细节,要提倡的1.使用内部函数提高效率
2.使用decode函数减少处理时间
3.把过滤最大数据记录的条件写在where子句末尾,Oracle采用自下而上的顺序解析where子句五.关注细节,要避免的1.避免在索引列上用not
2.避免在索引列上用is null和is not null
3.避免Select子句中使用*
优化思路:
一.查看执行计划1.尽可能减少访问数据库次数。
2.要选择合适访问表方式,通过全表扫描方式,还是通过rowid的访问方式。
(结果数据是占全表的大部分或者表很小时,用全表扫描可能比索引更高效。)二.查看能否共享SQL1.是否能共享SQL,避免重复解析三.关注细节,谁比谁高效
1.>=比>高效
2.union比or高效
3.in比or高效
4.union all 比union高效
5.exist比in高效
6.not exist比not in高效四.关注细节,要提倡的1.使用内部函数提高效率
2.使用decode函数减少处理时间
3.把过滤最大数据记录的条件写在where子句末尾,Oracle采用自下而上的顺序解析where子句五.关注细节,要避免的1.避免在索引列上用not
2.避免在索引列上用is null和is not null
3.避免Select子句中使用*
解决方案 »
- 【面试题】某表定期删除之前的数据,求教该表设计要点
- oracle处理的数据量极限是多少?
- oracle 中where条件能不能用IF
- 连接查询问题
- ORA-00911 错误 使用pl/sql工具运行sql文件
- select max(ID) from organization 把它取出来后怎么处理才能 insert到 varchar类型的列里?
- 查询第100~150条的记录,只能用标准SQL语句,能做么?
- 应用程序双击启动一会后就消失,无法打开.log_file ,trc_file,log_status文件显示如下错误:
- 初学者向各位老师请教几个关于Oracle SQL*Plus问题!本人不甚感激,希望各位高人指点指点。有兴趣的进来看看!大家共同进步。谢谢!!
- clob类型变量可以直接执行么
- 表间复制的存储过程
- commit的效率问题
顺了目录说一遍就可以了
当然这就不止是sql优化了