我有一个如下的合并语句
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 秒即可执行。但是对于第二组记录(大约 300,000 条),它需要一个多小时。
两天前,我已经加载了 50 个这样的集合,并且相同的查询运行得非常快,但从今天开始它非常慢。我不知道出了什么问题。
注:查询
从 TABLEA 中选择 WITH(NOLOCK) INNER JOIN TableB .....
在所有场景中需要 20 秒。