gpt4 book ai didi

sql - 用sql最快更新

转载 作者:行者123 更新时间:2023-12-04 23:47:20 25 4
gpt4 key购买 nike

我有以下查询需要几天才能执行

DECLARE @cnt BIGINT
SET @cnt = 1

WHILE @cnt * 1000 < 92746339
BEGIN

UPDATE TOP (1000) [dbo].[Vente]
SET Promo =
CASE
WHEN [Code Article] IN (
SELECT [Code Article]
FROM [Promotion]
WHERE datecol BETWEEN [Date Debut Promo] AND [Date Fin Promo]
)
THEN 1
ELSE 0
END

WHERE promo IS NULL
PRINT '@cnt: ' + CONVERT(VARCHAR, @cnt)
SET @cnt = @cnt + 1
END

行数:Vente = 9200 万和促销 =419187执行计划:

enter image description here

如何让它更快?

最佳答案

为什么不使用 JOIN 而不是 IN 子句?

UPDATE v
SET v.Promo = CASE
WHEN p.[Code Article] IS NOT NULL THEN 1
ELSE 0
END
FROM [dbo].[Vente] v
LEFT JOIN [Promotion] p
ON v.[Code Article] = p.[Code Article]
AND (datecol between [Date Debut Promo] AND [Date Fin Promo])
WHERE v.Promo IS NULL;

你的表格有多少行?

关于sql - 用sql最快更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36084532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com