首页 > 数据库 > Oracle > oracle 优化经验总结
晚上下班,和oracle优化高手一起坐下来聊聊。
1、关注访问频繁的表,现在的存储已经可以非常分散的存储数据,所以可以对访问频繁的表以及涉及到的sql进行特别关注。statspack的sql排序要根据执行次数、逻辑读等等多个纬度去衡量,这部分sql要是能够处理好,数据库的load会得以控制。
2、oltp系统的sql的业务范围界定,他不是做报表的用途,特点是每次处理的数据量比较小,能够比较快的处理完毕,这是一个原则。统计类型的如果非要必须,尽量减小其访问数据的范围,或者是将这样的大量数据的统计工作放到业务比较闲的时候做,这一点要推动业务需求方和老板们知晓。
3、降低sql的逻辑读,尽最大能力降低sql的逻辑读。每个sql的逻辑读其实可以大体估算,就拿nl类型的执行计划来说,其每次得到一条记录都是要花费4个逻辑读的样子,这样就可以估算出大体的整个结果集出来之后的逻辑读是多少。
4、提高索引的效果,为什么这样讲呢?索引对于oltp系统来讲,可以决定着数据库系统的load高低。例如两个索引都是有4个字段,而且字段相同,这时候如何处理好各个字段的顺序关系,非常重要,决定使用哪一个索引和减少访问索引和表的次数也非常重要。比如说一条sql同时出现两个字段(其他还有附加字段),这两个字段的选择性a大于b三倍多,而a在sql中的使用是 a in (:1,:2,:3,:4),这样,而b在sql语句中是b=:5,这样一个索引如何建更好呢?
5、尽量使用统计信息去影响执行计划,如果统计信息达不到效果或者是有特别的需要,这时可以加hint,因为使用hint之后dba很难改变其计划,发生事情时不好控制。
6、优化sql,优化sql。。。。。。
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7312700/viewspace-1005853/ ,如需转载,请注明出处,否则将追究法律责任。