日期:2014-05-17  浏览次数:20700 次

来谈谈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子句中使用*


------解决方案--------------------
能说的都被你说了,我还说个叼!大概知道就行了,具体看执行计划和实际情况。。。
------解决方案--------------------
一般感觉合理加上索引 就够我用了
------解决方案--------------------

哪里抄来的???
------解决方案--------------------
总体上讲还是有一些共同的原则是需要遵守的。
当然最终还是要具体问题具体分析。
这是需要靠时间和经验来进行积累的。