我想了解SQL Server中的隔离/锁定。什么时候/什么锁持有/发布READ COMMITTED隔离级别
我有以下的READ方案提交的隔离级别(默认)
我们有一个表。
create table Transactions(Tid int,amt int)
with some records
insert into Transactions values(1, 100)
insert into Transactions values(2, -50)
insert into Transactions values(3, 100)
insert into Transactions values(4, -100)
insert into Transactions values(5, 200)
现在从MSDN我理解
当选择触发共享锁采取所以没有其它事务都不能修改数据(避免脏读)..文档也有关行级会谈,页面级,表级锁。我认为以下scenarion的
Begin Transaction
select * from Transactions
/*
some buisness logic which takes 5 minutes
*/
Commit
我想了解的是什么时长的共享锁将被收购和(行,页表)。
只有在声明select * from Transactions
正在运行时,才会获取锁定,否则将在整个5分钟内获取,直至达到COMMIT。
当您获取表锁而不是行锁时,实现细节非常重要。 – matao
肯德拉的小链接已损坏 – TinyTheBrontosaurus