存储过程性能变化

Posted

技术标签:

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

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

【问题讨论】:

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

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

【讨论】:

以上是关于存储过程性能变化的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 存储过程具体解释

MYSQL数据太大时怎么优化 视图?存储过程? - 技术问答

存储过程性能对比

SQL Server 存储过程性能测试

存储过程性能低怎么破?

SQL Server 存储过程性能影响