首页 > 解决方案 > 可重复读取会导致可序列化吗?

问题描述

假设我有以下交易T1T2.

--T1
UPDATE Employee SET Salary=Salary*10;
UPDATE Employee SET Bonus=Bonus+5;


--T2
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SELECT AVG(Salary) FROM Employee;
SELECT MAX(Bonus) FROM Employee;

据我了解,T2 中的可重复读取将对 Salary 进行锁定,并且仅在事务完成时才释放它。这是否意味着如果 T2 先开始,T1 将等到 T2 结束?因为在 T2 释放该锁(即完成时)之前,T1 将无法更新 Salary。

标签: sqlsql-server

解决方案


推荐阅读