Eager Spoolが示す問題


27

現在SQL Server 2008 R2で実行中

UPDATEステートメントのパフォーマンスを向上させようとしています。showplanにEager Spool操作がポップアップ表示されます。スプール操作についての私の理解は非常に基本的です-更新中にテーブルの一時ストレージを作成します。

また、熱心なスプールは実行時間を大幅に短縮する一方で、多くの場合、テーブル構造やクエリステートメントの根本的な問題を示しています。

私の質問は非常に簡単です:クエリプランにEager Spoolが表示された場合、最初に対処すべき問題は何ですか?

システムのすべての部分を分析しパフォーマンスを向上させます。どこから始めればよいかについてのガイダンスを探しています。


計画を見せてもらえますか?スプールはさまざまな意味を持ちます。
usr

そしてこれはで表示される可能性のある例別のカップルは、UPDATE表がある場合で、外部キーを参照し、自己のか、データアクセスを行うのUDFアクセスするか、スキーマバインドされていない
マーティン・スミス

回答:


18

UPDATEステートメントのパフォーマンスを向上させようとしています。showplanにEager Spool操作がポップアップしていることに気付きました。

Eager Spoolは、ハロウィーン保護など、さまざまな理由で追加されたり、非クラスター化インデックスを維持するときにI / O最適化したりする場合があります

実行計画を(写真でさえ)見ないと、これらのシナリオのどれが特定のケースに当てはまるかを確認するのは困難です。データの機密性が懸念される場合は、SentryOne Plan Explorerを使用して、分析のために匿名バージョンのプランをアップロードすることを検討してください

とにかく、熱心なスプールは、あなたがとにかく集中するべきものではないかもしれません。データを変更するクエリの実際のパフォーマンスには多くの要因が影響します。Eager Spoolオペレーターに表示される推定パーセンテージコストに基づいてチューニング作業を行う場合、特定のハードウェア構成の機能と一致することを意図していないモデルを使用してこれらの推定値が生成されることを考慮してください。


2

他のブロッキングオペレーターが配置されている場合は、たとえば、並べ替えなど、熱心なスプールを回避できる場合があります。そのため、データがそのステージに到達する時間で既にソートされていることを確認することをお勧めします。(おそらくインデックスがありませんか?)

ハロウィーンの保護のためにある場合、他の人が言ったように、あなたができることはほとんどありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.