相关疑难解决方法(0)

在 IsolationLevel.ReadUncommitted 上发出共享锁

我读到,如果我使用 IsolationLevel.ReadUncommitted,则查询不应发出任何锁。但是,当我对此进行测试时,我看到了以下锁定:

Resource_Type:HOBT
Request_Mode:S(共享)

什么是 HOBT 锁?与 HBT(堆或二叉树锁)相关的东西?

为什么我还会得到 S 锁?

在不打开隔离级别快照选项的情况下进行查询时如何避免共享锁定?

我正在 SQLServer 2008 上对此进行测试,并且快照选项设置为关闭。查询仅执行选择。

我可以看到 Sch-S 是必需的,尽管 SQL Server 似乎没有在我的锁定查询中显示它。为什么它仍然发出共享锁?根据:

设置事务隔离级别 (Transact-SQL)

在该READ UNCOMMITTED级别运行的事务不会发出共享锁,以防止其他事务修改当前事务读取的数据。

所以我有点困惑。

sql-server-2008 sql-server locking isolation-level

10
推荐指数
2
解决办法
2911
查看次数