sql优化方法求解

欧阳大师~你好:

1、针对于sql进行优化的思路是什么?
2、分析一条sql的执行计划,在默认的query optimization级别下开销为20000左右,但是设置query optimization 为1的话执行计划出来的cost就为100左右,这是什么原理,肯定不会真正的消耗这么低的timeon吧?

3、我解除到的应用,好多都针对一个表做许多单列索引来满足许多针对于这个表的业务场景,adivis给出的建议又全都是多列复合索引,该怎么进行优化呢?
参与2

1同行回答

欧阳峰欧阳峰其它Freelancer
1、针对于sql进行优化的思路是什么?答:a. 首先要查看表的大小记录数,根据这个判断是否需要创建索引b. 如果需要索引那么需要查看执行计划,查看执行计划是否正确以及执行计划的costc. 根据执行计划可能需要做runstats 和reorg等动作d. 查看是否在合理的字段上创建了合理的索引...显示全部
1、针对于sql进行优化的思路是什么?
答:
a. 首先要查看表的大小记录数,根据这个判断是否需要创建索引
b. 如果需要索引那么需要查看执行计划,查看执行计划是否正确以及执行计划的cost
c. 根据执行计划可能需要做runstats 和reorg等动作
d. 查看是否在合理的字段上创建了合理的索引


2、分析一条sql的执行计划,在默认的query optimization级别下开销为20000左右,但是设置query optimization 为1的话执行计划出来的cost就为100左右,这是什么原理,肯定不会真正的消耗这么低的timeon吧?
答:默认的采样都比较粗糙,所以尽量采样力度越大越准

3、我解除到的应用,好多都针对一个表做许多单列索引来满足许多针对于这个表的业务场景,adivis给出的建议又全都是多列复合索引,该怎么进行优化呢?

答:好多单列上建立了好多单列的索引吗? 例如你有3个单列上分别建立了三个索引,既然你每次都用到了这三个列作为谓词来进行查询,那么当然你其实只需要一个这三个列的索引即可了,否则db2维护多个索引的开销肯定比维护一个索引更加多的收起
IT其它 · 2015-05-29
浏览956

提问者

wonder_191
数据库运维工程师北京融海数据科技股份有限公司

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-05-29
  • 关注会员:1 人
  • 问题浏览:2197
  • 最近回答:2015-05-29
  • X社区推广