当 SQL Server 处于单用户模式时会发生什么?

Dan*_*ews 4 sql-server

如果我将数据库置于单用户模式,我是否需要担心锁定?或者 SQL Server 基本上会执行(除了我的打开事务),就像未提交读取隔离级别一样?

我们有一个繁重的 ETL 过程,它根据数据使用诸如 TABLOCK 和 NOLOCK 之类的查询提示来编写和加速。我想知道在这些过程中将数据库置于单用户模式是否会有好处。

Mik*_*lsh 5

因此,在 single_user 模式下 - 您不太可能在该数据库中出现锁定问题。这听起来像 - 单用户 - 这并不意味着单一用户名 - 它意味着一个用户。所以当你作为一个 DBA 想要做一些其他用户无法完成的事情时,它会被使用。也许你正在尝试做一个 checkdb 的修复选项。也许您正在尝试更改某些对象元数据,但没有更好的方法将其他用户踢出去。等等。

但它真的不是一个隔离级别的“东西”,它真的是一个“访问的东西”——如果你想消除或避免锁定——有很多东西需要考虑,比如更好的执行查询、快照隔离级别、改进代码等