我有几个关于Update(U)锁和Exclusive(X)锁的问题.
1)我是否正确当资源即将更新时,"X"锁被置于资源上?
2)我对U锁有点模糊.我是否正确读取资源时应用了U锁,SQL Server认为以后可能需要更新资源?如果这是正确的,那么只有在事务上下文中进行读取时才会应用"U"锁吗?我想我正在尝试理解在什么情况下SQL Server认为它可能需要稍后更新它刚刚读取的行.
谢谢 - 兰迪
1)我是否正确当资源即将更新时,"X"锁被置于资源上?
是.
2)我对U锁有点模糊.我是否正确读取资源时应用了U锁,SQL Server认为以后可能需要更新资源?如果这是正确的,那么只有在事务上下文中进行读取时才会应用"U"锁吗?我想我正在尝试理解在什么情况下SQL Server认为它可能需要稍后更新它刚刚读取的行.
U锁与读锁兼容,但彼此X不兼容,即使读锁也不兼容锁.
U锁由放置DML查询(UPDATE,DELETE,MERGE),而扫描表中的行(没有决定更新是尚未作出),而X当判定为更新的行锁放置.
在READ COMMITTED隔离模式下,在评估记录保持原样后,更新锁定被取消,在更高的隔离模式下,它们一直保留到事务结束.
| 归档时间: |
|
| 查看次数: |
3139 次 |
| 最近记录: |