我读过一些关于意图锁的文章,其中有很多意图锁,它们是意图共享(IS)、意图排他性(IX)、意图独家共享(6)、意图更新(IU)、共享意图更新(SIU)、更新意图排他(UIX)。有时,我在锁统计信息中找到了这些锁,并且我很难识别每个锁,因为有时会出现许多性能问题。
意图锁的实际用途是什么?在数据库并发中,这些意图锁中的每个锁是如何相互对抗的呢?
谢谢
发布于 2018-05-02 11:24:52
意图锁是一种性能增强,它允许Server在更细粒度的级别上快速检查锁。
https://www.sqlpassion.at/archive/2016/05/16/why-do-we-need-intent-locks-in-sql-server/
发布于 2018-05-02 13:51:32
关于这件事,我也有更多的资料。
使用此锁定模式的意图共享(IS),Server在锁层次结构中较低的某些资源上保护请求或获取的共享(S)锁。
意图排他性(IX)此锁定模式是意图共享( is )锁的超集,它不仅保护层次结构中较低的资源上的锁,而且还保护在层次结构中较低的某些资源上的请求或获取的排他(X)锁。
与意图排他共享(6)这种锁模式保护层次结构中较低的所有资源上的请求或获取共享(S)锁,而意图排他性(IX)锁保护层次结构中较低的一些资源。资源一次只能存在一个具有意图独占(6)锁的共享锁,以防止其他事务修改它。但是,较低级别的资源可以具有意图共享(IS)锁,并且可以被其他事务读取。
意图更新(IU) Server仅在页面资源上使用此锁定模式来保护所有较低级别资源上的请求或获取更新(U)锁,并在事务执行更新操作时将其转换为意图排他(IX)锁。
共享意图更新(SIU)这种锁模式是共享(S)和意图更新(IU)锁的组合,当事务单独获取每个锁但同时持有它们时就会发生。
更新意图排他性(UIX)此锁定模式是由一个事务单独获取但同时持有的update (U)和intent独占(IX)锁组合而成的。
https://stackoverflow.com/questions/50133444
复制相似问题