我在SQL Server 2008中遇到MERGE语句的性能问题。我已经读过在ON子句中涉及的所有列上都有索引会有所帮助,但是我找不到如何在数据集上执行此操作这是为此操作创建的。
MERGE INTO target_table T
USING (VALUES(?, ?, ?, ?, ?)) AS S (id,unique_code,col1,col2,col3)
ON ((T.id = S.id) OR (T.unique_code = S.unique_code))
WHEN NOT MATCHED THEN
INSERT (unique_code,col1,col2,col3)
VALUES (S.unique_code,S.col1,S.col2,S.col3)
WHEN MATCHED THEN UPDATE SET T.col1=S.col1,T.col2=S.col2,T.col3=S.col3
target_table已经在" id"和" unique_code"列。 " UNIQUE_CODE"是VARCHAR(50)字段,可以是NULL