码迷,mamicode.com
首页 > 数据库 > 详细

锁兼容性(数据库引擎)

时间:2016-07-12 11:51:17      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

 

锁兼容性控制多个事务能否同时获取同一资源上的锁。 如果资源已被另一事务锁定,则仅当请求锁的模式与现有锁的模式相兼容时,才会授予新的锁请求。 如果请求锁的模式与现有锁的模式不兼容,则请求新锁的事务将等待释放现有锁或等待锁超时间隔过期。 例如,没有与排他锁兼容的锁模式。 如果具有排他锁(X 锁),则在释放排他锁(X 锁)之前,其他事务均无法获取该资源的任何类型(共享、更新或排他)的锁。 另一种情况是,如果共享锁(S 锁)已应用到资源,则即使第一个事务尚未完成,其他事务也可以获取该项的共享锁或更新锁(U 锁)。 但是,在释放共享锁之前,其他事务无法获取排他锁。

下表显示了最常见的锁模式的兼容性。

 现有授予模式     

请求模式

IS

S

U

IX

SIX

X

意向共享 (IS)

共享 (S)

更新 (U)

意向排他 (IX)

意向排他共享 (SIX)

排他 (X)

技术分享注意:
意向排他锁(IX 锁)与 IX 锁模式兼容,因为 IX 表示打算只更新部分行而不是所有行。 还允许其他事务尝试读取或更新部分行,只要这些行不是其他事务当前更新的行即可。

技术分享完整的锁兼容性矩阵

使用下表可以确定 Microsoft SQL Server 中所有可用的锁模式的兼容性。

技术分享

锁兼容性(数据库引擎)

标签:

原文地址:http://www.cnblogs.com/Ffdd/p/5662656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!