READ_COMMITTED_SNAPSHOTが有効になっていることを検出する方法は?


130

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

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

TIA

回答:


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

戻り値:

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

7
覚えやすいDBCC USEROPTIONSが好きです。
ProVega 2013年

5
@ProVega-DBCC USEROPTIONSはis_read_committed_snapshot_onの値を返しません。
CarstenSchütte、2015年

3
  1. https://msdn.microsoft.com/en-us/library/ms180065.aspxに従って、「DBCC USEROPTIONSは、データベースオプションREAD_COMMITTED_SNAPSHOTがONに設定されており、トランザクション分離レベルが「コミットされた読み取り」に設定されます。実際の分離レベルはコミットされた読み取りです。」

  2. また、SQL Server Management Studioの[オプション]-> [その他]にあるデータベースプロパティで、[Is Read Committed Snapshot On]オプションのステータスがあります。


1

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

6
SOに関する質問/回答についての理解を深めるには、このstackoverflow.com/aboutを読んでみてください。あなたの貢献は質問に答えていません。評判が高まったら追加できるコメントです。stackoverflow.com
faq

1
「方法はありますか?」という質問に答えようとするので、答えは大丈夫です。しかし、何がうまくいかないのかを伝えるだけでは、あまり受け入れられません。
Christian Strempfer、

4
の分離レベルでDBCC USEROPTIONSわかります。それはだ場合read committed snapshot、それはそれ以外の場合はオフですが、上のだ
グレッグ

@Greg-コミットされた読み取りスナップショットは、ユーザー接続レベルではなくデータベースレベルで設定されます。DBCC USEROPTIONSは、オンかオフかを通知しません。
JasonS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.