目前正在sql Server 2008 R2上运行
我试图提高UPDATE语句的性能.我注意到showplan中出现了一个Eager Spool操作.我对假脱机操作的理解非常基础 – 它们在更新期间为表创建临时存储.
我也知道,虽然它们阻止了更糟糕的执行时间,但是急切的线程通常表示表结构和/或查询语句的潜在问题.
我的问题非常简单:当您在查询计划中看到Eager Spool时,您首先要解决的问题是什么?
我将分析我们系统的每个部分以提高性能 – 我只是在寻找关于我应该从哪里开始的指导.
解决方法
I am attempting to increase performance of an UPDATE statement. I notice an Eager Spool operation in the showplan popping up.
可能出于各种原因添加Eager Spools,包括避免Halloween Protection或optimize I/O when maintaining nonclustered indexes.
如果没有看到(甚至是图片)执行计划,很难确定哪种情况可能适用于您的特定情况.如果担心数据敏感性,请考虑使用SQL Sentry Plan Explorer上载计划的匿名版本以进行分析.
很可能,Eager Spool不是你应该专注的东西;许多因素会影响更改数据的查询的实际性能.如果您的调整工作基于为Eager Spool运算符显示的估计百分比成本,请考虑使用不打算与特定硬件配置的功能匹配的模型生成这些估计.