2013-07-11 92 views
0

我有一個過程來計算SQL Server 2008 R2中的大表中的日常銷售預測(我們稱之爲Mothership)。每天,我都會在事務數據庫上掃描CDC以提取更改,計算增量預測,並將此DeltaMothership合併。問題是,性能非常不一致。 Mothership有25M行,Delta有1 - 2M行。我已經看到合併的表現在8分鐘到1小時之間。提高SQL Server中MERGE語句的性能

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) 

我對鍵1定義爲KEY4每個表的主鍵,而且性能還難吃。在性能方面MERGE中有錯誤嗎?

+2

你能後的執行計劃的問題列表? – MatBailie

回答