我们在同一个SQL Server 2012实例上有两个数据库。数据库dbA_optimistic
包含一些包含数据记录的表,dbB_pessimistic
包含一些从dbA_optimistic
表中读取数据的视图。
dbA_optimistic
使用乐观并发(READ_COMMITTED_SNAPSHOT ON),dbB_pessimistic
(READ_COMMITTED_SNAPSHOT OFF)使用悲观并发。
optimistic-concurrency
对dbA的读访问不会获取读锁,并且在独占写访问期间不会阻止读访问。
对其他人持有独占写访问锁的dbB获取读锁和读访问的读访问被阻止。
简单的游戏。 :)
如果使用dbB中从dbA读取数据的视图读取数据会发生什么? dbB_view
获取dbA_table
的读锁吗?这个dbB_view
是否访问阻止dbA读/写访问? (即使dbA设置为乐观并发,dbA中的悲观并发?)
我们查询了阻止dbA_table会话的dbB_views。 sp_lock给了我一些readlocks,似乎有线。
有什么想法吗?