来谈谈sql的优化思路,欢迎请进
先写我的思路,求高手指点
优化思路:
一.查看执行计划
1.尽可能减少访问数据库次数。
2.要选择合适访问表方式,通过全表扫描方式,还是通过rowid的访问方式。
(结果数据是占全表的大部分或者表很小时,用全表扫描可能比索引更高效。)
二.查看能否共享SQL
1.是否能共享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子句中使用*
------解决方案--------------------能说的都被你说了,我还说个叼!大概知道就行了,具体看执行计划和实际情况。。。
------解决方案--------------------一般感觉合理加上索引 就够我用了
------解决方案--------------------哪里抄来的???
------解决方案--------------------总体上讲还是有一些共同的原则是需要遵守的。
当然最终还是要具体问题具体分析。
这是需要靠时间和经验来进行积累的。