web-dev-qa-db-ja.com

パーティションテーブルの更新と削除のための熱心なスプール

パーティションテーブルを更新または削除すると、実行プランに熱心なスプールが表示されます。

熱心なスプールを示す更新クエリ実行プランの画像:- Image for Update query execution plan showing eager spool

パーティションテーブルで更新または削除しているときにのみイーガースプールを実行している理由がわかりません。非パーティションテーブルで実行した場合と同じクエリで、イーガースプールが実行されません。

1
Puneet Pathak

熱心なスプールは、削除するデータのサイズと関係があります。

この場合、複数のインデックスを持つテーブルの大量の行を更新しています。また、クラスター化されていない多くのインデックスでカバーされているフィールドを更新しているため、SQLServerはそれらのインデックスもすべて更新する必要があります。

この操作を回避するには、更新する行を少なくするか(テーブルのパーセンテージとして)、テーブルのインデックスをそれほど大きくしません。

4
Brent Ozar