首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sqlserver执行计划的有关问题

2013-03-28 
sqlserver执行计划的问题看到很多帖子说执行计划中的百分比大的步骤是需要优化的 那么 执行计划的各个步骤

sqlserver执行计划的问题
看到很多帖子说执行计划中的百分比大的步骤是需要优化的 

那么 执行计划的各个步骤的百分比加起来是否是100%?

如果是百分之百,那么这个步骤优化完了百分比降下去了 那么其余的步骤的百分比应该是会上去的吧?

我这么说 不知道各位大侠理解没有 求高手解答一下 小弟迷惑不解
[解决办法]
各个步骤的百分比加起来是100%
其余的步骤的百分比应该是会上去的

如果把鼠标点在执行计划的某个运算符上,可以看到有个成本(cost)的值,百分比就是按这个值来算的
[解决办法]
你有600块钱, 
你哥有100块钱,
你妹有300块钱。


三人总资产中,你就占了60%

你买瓶酱油花了500, 就还剰100块。  这时你占了20%, 你哥占20%,你妹占60%


[解决办法]
如果1秒钟就查出了结果,管他谁占多大比例。
如果1分钟才查出了结果,就要看谁占比例多了,就优先考虑优化谁。
[解决办法]
没错,整体的开销都是100%,各个步骤各占比例不同。优化的时候不光是看百分比的,看得是各步骤的开销,索引使用情况,以及语句逻辑等。
[解决办法]
邹老大回复我的原话:
执行计划, 简单地说, 可以这样看的:
1. 看有没有缺失索引之类, 这个在 SQL 2005 及之后的版本很是一目了然
2. 看执行计划的资源开销最大的那些结点(同时也观察一下执行计划的复杂性), 太复杂的执行计划, 考虑先把开销比较大的部分拿出来单独查询, 分析这部分的执行计划;如果是简单的执行计划, 那就是评估这些结点在做什么, 通常考虑条件,输出列和输出记录数, 看这些部分有没有可以调整的地方, 比如说按照那个查询条件, 满足条件的记录数很少, 但执行计划显示记录数很多, 那么可能是统计信息没有更新,或者是准确性有问题, 考虑统计信息;或者说, 你看到的该结眯的条件中, 有转换数据类型这样的保长, 那可能是条件的数据类型定义有问题
3. 执行计划中关注一下有没有走索引, 如果走索引, 是 SEEK 的方式, 还是 SCAN 的方式, 如果没有走索引, 或者是走的 SCAN 方式, 那么应该分析看是否索引方面有待改进
4. 执行计划中关注一下, 有没有同一个对象出现在多个结点中, 结合你的查询语句, 如果查询中没有多次引用同一个对象, 但执行计划中反馈是多次引用, 那么需要看这些引用到底是做什么, 是否有可以合并的地方
5. 结合数据和查询, 判断一下执行计划中, 各个结点的优先顺序是否是合理的, 比如某个条件可以大量过滤数据, 是否执行计划中反而它被放到最后面才去执行


当然,自己参详,别过于完全接受

热点排行