如何检测READ_COMMITTED_SNAPSHOT是否启用?

发布于 2024-07-04 13:56:47 字数 217 浏览 14 评论 0原文

在 Microsoft SQL Server 中,有没有办法通过 T-SQL 命令 ALTER DATABASE来检测数据库是否已设置其隔离级别。 设置 READ_COMMITTED_SNAPSHOT ON;

我无法找到一种简单的方法来在 T-SQL 中或通过 Management Studio 的 GUI 来检测这一点。

In Microsoft SQL Server, is there a way to detect whether a database has had its isolation level set via the T-SQL command ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;?

I cannot find a simple way to detect this in either T-SQL or via the Management Studio's GUI.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蹲墙角沉默 2024-07-11 13:56:47
SELECT is_read_committed_snapshot_on FROM sys.databases 
WHERE name= 'YourDatabase'

返回值:

  • 1READ_COMMITTED_SNAPSHOT 选项为ON。 READ COMMITTED 隔离级别下的读操作基于快照扫描,并且不获取锁。
  • 0(默认):READ_COMMITTED_SNAPSHOT 选项为关闭READ COMMITTED 隔离级别下的读取操作使用 共享 (S) 锁
SELECT is_read_committed_snapshot_on FROM sys.databases 
WHERE name= 'YourDatabase'

Return value:

  • 1: READ_COMMITTED_SNAPSHOT option is ON. Read operations under the READ COMMITTED isolation level are based on snapshot scans and do not acquire locks.
  • 0 (default): READ_COMMITTED_SNAPSHOT option is OFF. Read operations under the READ COMMITTED isolation level use Shared (S) locks.
深居我梦 2024-07-11 13:56:47

在 SQL2005 和 2012 上,DBCC USEROPTIONS 都不显示 is_read_comfilled_snapshot_on

Set Option  Value
textsize    2147483647
language    us_english
dateformat  mdy
datefirst   7
lock_timeout    -1
quoted_identifier   SET
arithabort  SET
ansi_null_dflt_on   SET
ansi_warnings   SET
ansi_padding    SET
ansi_nulls  SET
concat_null_yields_null SET
isolation level read committed

Neither on SQL2005 nor 2012 does DBCC USEROPTIONS show is_read_committed_snapshot_on:

Set Option  Value
textsize    2147483647
language    us_english
dateformat  mdy
datefirst   7
lock_timeout    -1
quoted_identifier   SET
arithabort  SET
ansi_null_dflt_on   SET
ansi_warnings   SET
ansi_padding    SET
ansi_nulls  SET
concat_null_yields_null SET
isolation level read committed
何以笙箫默 2024-07-11 13:56:47
  1. 根据 DBCC 用户选项(Transact-SQL)

当数据库选项 READ_COMMITTED_SNAPSHOT 设置为 ON 并且事务隔离级别设置为“读已提交”时,DBCC USEROPTIONS 报告隔离级别为“读已提交快照”。 实际的隔离级别是读已提交。

  1. 同样在 SQL Server Management Studio 中,在“选项”->“其他”下的数据库属性中,有“读取提交快照已打开”选项状态
  1. As per DBCC USEROPTIONS (Transact-SQL):

DBCC USEROPTIONS reports an isolation level of 'read committed snapshot' when the database option READ_COMMITTED_SNAPSHOT is set to ON and the transaction isolation level is set to 'read committed'. The actual isolation level is read committed.

  1. Also in SQL Server Management Studio, in database properties under Options->Miscellaneous there is "Is Read Committed Snapshot On" option status
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文