データベースエンジン設定を使用してREAD_COMMITTED_SNAPSHOTが有効かどうかを確認する方法
SQL ServerのREAD_COMMITTED_SNAPSHOT分離レベルは、トランザクション内のコミットされていないデータを読み取ることができるため、高い読み取りパフォーマンスを提供できます。しかし、この分離レベルを使用する場合は、いくつかの注意点があります。
このチュートリアルでは、以下の方法でREAD_COMMITTED_SNAPSHOTが有効かどうかを確認する方法を説明します。
- T-SQLクエリを使用する
- SSMSを使用する
- データベースエンジン設定を確認する
以下のT-SQLクエリを実行することで、現在のデータベースの分離レベルを確認できます。
SELECT is_read_committed_snapshot_on
FROM sys.databases
WHERE name = N'<データベース名>'
is_read_committed_snapshot_on
列が1の場合、READ_COMMITTED_SNAPSHOTが有効になっています。
以下の手順で、SSMSを使用してREAD_COMMITTED_SNAPSHOTが有効かどうかを確認できます。
- SSMSを起動し、データベースに接続します。
- オブジェクトエクスプローラーで、データベースを右クリックし、「プロパティ」を選択します。
- 「オプション」ページで、「トランザクション ログ」セクションを確認します。
- 「読み取りコミット済みスナップショットを使用する」チェックボックスがオンの場合、READ_COMMITTED_SNAPSHOTが有効になっています。
- SQL Server Management Studio (SSMS) を起動し、データベースエンジンに接続します。
- 左側のペイン で、データベースエンジン を選択します。
- 右側のペイン で、接続 タブを選択します。
- 読み取りコミット済みスナップショットを使用する オプションを確認します。
注意事項
- READ_COMMITTED_SNAPSHOTを使用する場合は、トランザクションログのバックアップを定期的に行う必要があります。
- READ_COMMITTED_SNAPSHOTを使用すると、一部のデータ型が使用できなくなる場合があります。
USE AdventureWorks2019;
SELECT is_read_committed_snapshot_on
FROM sys.databases
WHERE name = N'AdventureWorks2019';
このクエリを実行すると、以下の結果が表示されます。
is_read_committed_snapshot_on
--------------------------
0
この結果から、AdventureWorks2019データベースではREAD_COMMITTED_SNAPSHOTは有効になっていないことがわかります。
- SSMSを起動し、AdventureWorks2019データベースに接続します。
結果:
「読み取りコミット済みスナップショットを使用する」チェックボックスがオフになっていることが確認できます。
- データベースプロファイルを使用する
データベースプロファイルには、READ_COMMITTED_SNAPSHOTの設定を含む、データベースの設定が含まれています。
- DBCC CHECKDBコマンドを使用する
DBCC CHECKDBコマンドを実行すると、データベースの整合性に関する情報が表示されます。この情報には、READ_COMMITTED_SNAPSHOTが有効かどうかが含まれています。
- 拡張イベントを使用する
拡張イベントを使用して、READ_COMMITTED_SNAPSHOTの使用に関する情報を収集できます。
sql-server isolation-level read-committed-snapshot