READ_COMMITTED_SNAPSHOT が有効になっていることを検出するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/51969

質問

MS SQL Serverには、T-SQLコマンドを介してデータベースの分離レベルが設定されているかどうかを検出する方法があります ALTER DATABASE <database> SET READ_COMMITTED_SNAPSHOT ON;

T-SQL または Management Studio の GUI を介してこれを検出する簡単な方法が見つかりません。

TIA

役に立ちましたか?

解決

SELECT is_read_committed_snapshot_on FROM sys.databases 
WHERE name= 'YourDatabase'

戻り値:

  • 1: READ_COMMITTED_SNAPSHOT オプションは の上. 。読み取り操作 READ COMMITTED 分離レベルはスナップショット スキャンに基づいており、ロックは取得しません。
  • 0 (デフォルト): READ_COMMITTED_SNAPSHOT オプションは オフ. 。読み取り操作 READ COMMITTED 分離レベルの使用 共有 (S) ロック.

他のヒント

  1. とおり https://msdn.microsoft.com/en-us/library/ms180065.aspx「DBCC useroptionsは、データベースOption read_committ_snapshotがオンに設定され、トランザクション分離レベルが「committed」に設定されている場合、「コミットされたスナップショットを読み取る」という分離レベルを報告します。実際の分離レベルは読み取りコミットです。」

  2. また、SQL Server Management Studio では、[オプション] -> [その他] のデータベース プロパティに、[コミットされたスナップショットの読み取りはオンです] オプションのステータスがあります。

SQL2005でも2012でもそうではありません DBCC USEROPTIONS 見せる 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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top