私はMSSQL Server 2008を使用しており、テーブルから古いレコードを定期的に削除する単純な条件のSQLリクエストを持っています(テーブル内の〜3ミルのレコード)。
このリクエストは、0 行に影響する場合でもかなりの時間 (~ 10 秒) 実行されました。
このテーブルにはいくつかのインデックスがあり、実際の実行計画では、「インデックスの削除」操作がすべての実行時間を消費していることがわかります。
削除操作の影響を受ける行がない場合、SQL Server がインデックスに対して多くの作業を行うのはなぜですか?
アップデート:
リクエスト:
delete t
from Entity t
where t.Revision <= x
AND exists (
select 1
from Entity tt
where tt.Id=t.Id
and tt.Revision > t.Revision
)
実際の実行計画 XML: pastebin.com/up2E3iP1