1

毎日の売上予測を SQL Server 2008 R2 の大きなテーブルに計算するプロセスがあります (それを と呼びましょうMothership)。毎日、トランザクション データベースの CDC をスキャンして変更を抽出し、差分予測を計算して、これDeltaMothership. 問題は、パフォーマンスが非常に一貫していないことです。Mothership25M の行があり、Delta1 ~ 2M の行があります。マージで 8 分から 1 時間の範囲のパフォーマンスが見られました。

MERGE ステートメントは非常に単純です。

MERGE INTO Mothership AS tgt
    USING Delta AS src
    ON Mothership.Key1 = Delta.Key1 AND ... AND Mothership.Key4 = Delta.Key4
    WHEN MATCHED AND Mothership.UpdateDate < Delta.UpdateDate
         (UPDATE all data columns on Mothership)
    WHEN NOT MATCHED
         (INSERT into Mothership)

各テーブルの Key1 から Key4 に PRIMARY KEY を定義しましたが、パフォーマンスは依然として良好ではありません。パフォーマンスに関して MERGE にバグはありますか?

4

1 に答える 1