【问题标题】:Stored prodcedure performance change存储过程性能变化
【发布时间】:2011-03-11 18:21:40
【问题描述】:

昨晚我表演了一个存储过程坦克。查看查询计划,许多运算符的估计行数远高于实际值。这通常向我表明统计数据已过时。但是,在使用 fullscan 选项更新相关数据库中所有表中的所有统计信息后,问题仍然存在。我还尝试重新编译存储过程以及它使用的任何视图,但无济于事。有没有人对如何提高性能或为什么性能改变有任何想法?提前致谢。

【问题讨论】:

  • 有人更改了存储过程吗?
  • 您是否尝试过重建或重组它正在使用或可能正在引用的索引?
  • 如果您查看计划的属性并获取参数的编译时间值并执行这些参数,基数估计是否仍然错误?
  • @Joe Phillips:存储过程没有变化。此外,手动运行底层查询会产生相同的行为
  • @Martin:我应该更清楚;基础查询有问题。在存储过程之外运行它的行为是一样的。

标签: sql-server sql-server-2008


【解决方案1】:

根据您到目前为止所经历的情况,我想说看看您的基础数据,看看它是否有任何实质性的变化。即使使用最新的统计信息,查询通常对于特定范围的表大小/记录返回计数也是最佳的。或者可能是基础表中某处的索引消失/更改,这会产生类似的效果,从而彻底改变查询计划中特定部分返回的(估计)记录数量。

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 2015-03-19
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多