[英]Large numbers of update performance
我在下面有以下更新聲明:
UPDATE [dbo].[mytable]
SET [originaldate] =
CASE
WHEN [datecolumn1] <= [datecolumn2] THEN datecolumn3
ELSE [datecolumn1]
END
該語句執行了將近5分鍾,執行了260萬行。 有什么方法可以優化此查詢?
我試圖轉換的列date
這樣CONVERT(date, [datecolumn2])
因為列是datetime
,但仍執行時間是相同的。
另外,我嘗試將所需的列和ID放在臨時表中,但性能仍然很差。
由於記錄和事務開銷,更新表中的所有行都需要時間。 您可能會發現更快:
select t.*
into #temp
from mytable;
truncate table mytable;
insert into mytable(col1, . . ., originaldate)
select . . .,
(CASE WHEN [datecolumn1] <= [datecolumn2] THEN datecolumn3
ELSE [datecolumn1]
END)
from #temp;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.