gpt4 book ai didi

sql-server - SQL Server 2012 - "Repeatable Read"隔离级别如何工作?

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

我觉得我应该知道这一点,但我找不到任何具体概述这一点的内容,所以就到这里吧。

documentation对于 SQL Server 将 REPEATABLE READ 描述为:

Specifies that statements cannot read data that has been modified but not yet committed by other transactions and that no other transactions can modify data that has been read by the current transaction until the current transaction completes

这是有道理的,但是当出现其中一种情况时,实际上会发生什么?例如,如果事务 A 读取第 1 行,然后事务 B 尝试更新第 1 行,会发生什么情况?事务 B 是否等到事务 A 完成后再重试?还是抛出异常?

最佳答案

REPEATABLE READ 在事务期间对查询计划运算符已读取的所有行采用 S 锁。您的问题的答案如下:

  1. 如果读取在先,它会对该行进行 S 锁定,而写入必须等待。
  2. 如果写入先到,S-lock 等待写入提交。

在 Hekaton 下,它的工作方式不同,因为没有锁。

关于sql-server - SQL Server 2012 - "Repeatable Read"隔离级别如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30238059/

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