gpt4 book ai didi

SQL:NOLOCK 导致查询变慢

转载 作者:行者123 更新时间:2023-12-04 03:11:21 26 4
gpt4 key购买 nike

为什么向查询添加 nolock 会导致它增加执行时间?

UPDATE TargetTable
SET col1 = c1.RowCnt,
col2 = c2.RowCnt
from TargetTable tt
join
(
select col3, RowCnt = NULLIF(COUNT(*),0) from Table2 (nolock)
group by col3
) c1 on c1.col3 = tt.ID
join
(
select col4, RowCnt = NULLIF(COUNT(*),0) from Table2 (nolock)
group by col4
) c2 on c2.col4 = tt.ID

WHERE timestamp BETWEEN @FromDate AND @ToDate
AND (tt.Client_ID = @Client_ID)

最佳答案

NOLOCK 提示允许 Allocation Order Scans .因此,他们可能会创建一个完全不同的执行计划,一个预期会更快但结果却更慢的计划(例如,由于陈旧的统计数据导致基数估计错误)。与任何性能问题一样,使用调查方法找出问题的原因。 Waits and Queues是一种很好的方法。

关于SQL:NOLOCK 导致查询变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6496301/

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