以下のようなマージステートメントがあります
MERGE DESTINATION AS DST
USING ( SELECT <Some_Columns> FROM TABLEA WITH(NOLOCK) INNER JOIN TableB .....
) AS SRC
ON(
<some conditions>
)
WHEN MATCHED THEN
UPDATE SET column1 = src.column1
...............
,Modified_By = @PackageName
,Modified_Date = GETDATE()
WHEN NOT MATCHED THEN
INSERT (<Some_Columns>)
VALUES(<Some_Columns>)
OUTPUT
$action, inserted.key'inserted'
INTO @tableVar
;
最初のレコード セット (約 300,000) では、完全に機能し、わずか 30 秒で実行されます。しかし、2 番目のレコード セット (約 300,000) では、1 時間以上かかります。
2 日前、私はそのようなセットを 50 個ロードしましたが、同じクエリが非常に高速に動作していましたが、今日からは非常に遅くなります。何が問題なのかわかりません。
注: クエリ
SELECT FROM TABLEA WITH(NOLOCK) INNER JOIN TableB .....
すべてのシーンで 20 秒かかります。