我试图了解sql Server中的隔离/锁定.
我在READ COMMITTED隔离级别(默认)中有以下情况
我们有一张桌子.
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我明白了
当选择被启动时,共享锁被采取,所以没有其他事务可以修改数据(避免脏读).文档还涉及行级别,页级别,表级锁定.我想到了以后的场景
Begin Transaction select * from Transactions /* some buisness logic which takes 5 minutes */ Commit
我想要了解的是什么时间共享锁将被获取和哪个(行,页面,表).
只有当交易中的语句select *运行或者在完成COMMIT之前整个5分钟才能获取锁定.
解决方法
原文地址:https://www.jb51.cc/mssql/82367.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。