参与过几个项目,我深知SQL性能优化是一个很复杂、很博大精深的一个专题!
由于我的经验目前还不是非常多,不过既然是写日志,那么就先对我目前所熟知的方法做个记录吧,
日后,随着项目的积累,相信我的积累也会越来越多!届时将不断完善该专题!
我熟知的SQL优化方法总结:
1、where 的过滤条件,请注意过滤顺序。一般来说能尽快将结果集过滤成小结果集的条件应该写在后面!
2、select '*' from tab 其中的星号最好换成具体的列名,加快oracle的解析!
3、使用decode来避免重复的连接!
4、使用truncate 来删除整张表的数据,而不用delete!
5、在group by 字句中尽量避免使用having字句过滤,尽量在where条件里先过滤掉!
6、使用表的别名来明确列!
7、用EXISTS代替IN,NOT EXISTS代替NOT IN,有时可以考虑用MINUS!
8、少用DISTINCT,有时可以用EXISTS代替!
9、建立合适的索引,并且定期重建索引!
10、SQL语句书写规范,尽量全用大写!
11、用UNION ALL 代替OR!
12、用IN来替换OR!
13、少用ORDER BY ,除非不得已,否则一般别急着排序!
14、少用LIKE '%DD%'这样的语句,可以考虑用INSTR来做对比!
15、善于对SQL分析捕获,理解业务,设计表结构,具体环境具体分析!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26977915/viewspace-734122/
,如需转载,请注明出处,否则将追究法律责任。