READ_COMMITTED_SNAPSHOT が有効になっていることを検出するにはどうすればよいですか?
-
09-06-2019 - |
質問
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) ロック.
他のヒント
とおり https://msdn.microsoft.com/en-us/library/ms180065.aspx「DBCC useroptionsは、データベースOption read_committ_snapshotがオンに設定され、トランザクション分離レベルが「committed」に設定されている場合、「コミットされたスナップショットを読み取る」という分離レベルを報告します。実際の分離レベルは読み取りコミットです。」
また、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
所属していません StackOverflow