Geo*_*ios 5 sql-server locking isolation-level latch
我已经阅读了许多关于 NOLOCK 或读取未提交的隔离级别在采用的锁/闩锁方面如何运作的不同看法。
当使用带有 NOLOCK 的 SELECT 或在 Read Uncommitted Isolation 级别时,是唯一取出模式稳定性锁的锁,还是在查询通过行时滚动获取共享锁?(显然这些锁需要立即放下)
闩锁呢?当我假设不允许引用正在修改的内存对象时,如何处理内存中的页面?
READ UNCOMMITTED
隔离下的读取只需要Sch-S
. 没有获取共享锁(有几个罕见的例外)。
在读取锁定 READ COMMITTED
采取S
了通常释放尽快到下一行查询处理器移动锁(同样,也有一些例外)。
页在被读取或写入时总是被锁存以确保物理一致性,通常在读取时使用共享锁存器,在写入时使用独占锁存器。有关详细信息,请参阅Bob Ward 通过 PASStv 编写的Inside SQL Server Latches。
锁是 SQL Server 用来提供隔离级别提供的保证的实现细节。
归档时间: |
|
查看次数: |
193 次 |
最近记录: |