急停阀芯指示哪些问题


27

当前在SQL Server 2008 R2上运行

我试图提高UPDATE语句的性能。我注意到弹出的计划中有一个渴望假脱机操作。我对假脱机操作的理解非常基础-他们在更新期间为表创建了临时存储。

我还知道,尽管它们可以防止更糟的执行时间,但急切的假脱机通常表明表结构和/或查询语句存在潜在的问题。

我的问题很简单:当您在查询计划中看到一个急切假脱机时,您首先要解决什么问题?

我会分析每一个我们的系统的一部分,以提高性能-我只是在寻找指导,我应该开始。


你能显示计划吗?线轴可能意味着很多不同的东西。
usr 2012年

而另一种,这可能出现在几个案例UPDATE是,如果表中有一个自引用外键或访问那些数据访问的UDF 或不绑定到架构
马丁·史密斯

Answers:


18

我试图提高UPDATE语句的性能。我注意到弹出的计划中有一个渴望假脱机操作。

急于线轴可以加入各种各样的原因,包括用于万圣节保护,或者保持非聚集索引时优化I / O

如果不查看执行计划(甚至看不到执行计划),就很难确定在您的特定情况下哪些方案可能适用。如果需要考虑数据敏感性,请考虑使用SentryOne Plan Explorer上载该计划的匿名版本进行分析。

无论如何,Eager Spool可能不是您应该关注的事情;许多因素会影响更改数据的查询的实际性能。如果您根据Eager Spool操作员显示的估计百分比成本进行调整,请考虑使用与特定硬件配置功能不匹配的模型生成这些估计值。


2

有时,当其他阻塞操作员就位时,可以避免急切的假脱机(例如,排序)。因此,最好确保在到达该阶段之前已对数据进行排序。(也许缺少索引?)

如果有万圣节保护的话,那么就像其他人所说的那样,您无能为力。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.