gpt4 book ai didi

sql - 打开读取提交快照将如何影响使用 WITH(ROWLOCK、READPAST)的数据队列?

转载 作者:行者123 更新时间:2023-12-04 23:46:50 24 4
gpt4 key购买 nike

我们正在考虑开启读取提交的快照隔离级别来帮助解决我们的一些表锁定问题。

我们有一些存储过程使用表提示 WITH (ROWLOCK, READPAST) 作为 queuing based table setup .这可以防止多个辅助角色读取同一行。

我有点担心读取已提交的快照 可能会破坏排队系统并且多个辅助角色可以读取同一行。有谁知道打开 RCS 隔离是否会破坏此过程?

WITH  q AS
(
SELECT TOP Column1
FROM Table1 c WITH (ROWLOCK, READPAST)
WHERE c.NextAttemptDate <= GETUTCDATE()
ORDER BY c.NextAttemptDate ASC
)
UPDATE q
SET OperationStatusType = 8
OUTPUT inserted.Column1

最佳答案

UPDATE 在目标表的行上获取 U 锁,同时检查它们是否与您的过滤器匹配。之后,锁将被释放或转换为 X 锁,进一步向下查询管道。

使用锁定提示或隔离级别不可能影响写锁定。你很安全。 U 型锁将被占用。

我习惯于总是冗余地添加 WITH (UPDLOCK) 以便在代码中记录此行为。

关于sql - 打开读取提交快照将如何影响使用 WITH(ROWLOCK、READPAST)的数据队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28155124/

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