SQL Server 2005/2008では、スナップショット分離が有効になっているかどうかをどのように確認できますか?オンにする方法は知っていますが、スナップショット分離オプションの状態を照会する方法をGoogleに教えるための呪文は見つかりません。
SQL Server 2005/2008では、スナップショット分離が有効になっているかどうかをどのように確認できますか?オンにする方法は知っていますが、スナップショット分離オプションの状態を照会する方法をGoogleに教えるための呪文は見つかりません。
回答:
PowerShell、本当に?昔ながらのT-SQLの何が問題になっていますか?
sys.databasesはあなたが望むものです。snapshot_isolation_state_descのような人間が読める説明列があります
SELECT snapshot_isolation_state_desc from sys.databases
where name='adventureworks'
上からニックスレスポンスを展開しています。
以下は、すべてのデータベースに関する情報を返します
select name
, s.snapshot_isolation_state
, snapshot_isolation_state_desc
, is_read_committed_snapshot_on
, recovery_model
, recovery_model_desc
, collation_name
from sys.databases s
または、T-SQLコードを使用します。
SELECT
'Current Isolation State:' [ ],
CASE is_read_committed_snapshot_on
WHEN 1 THEN 'ON' ELSE 'OFF'
END AS [Read Committed Snapsot State]
FROM sys.databases
WHERE name = 'MyDatabaseName'
スナップショットトランザクション分離レベルが有効かどうかをテストする方法
スナップショットトランザクション分離レベルが有効かどうかをテストするには、次の手順を実行します。
- SQL Server Profilerを起動します。
- Analysis Servicesプロジェクトで指定したデータソースに接続する新しいトレースを作成します。
- で、トレースのプロパティ ]ダイアログボックス、クリックイベント選択 ]タブを。
- TransactionID列で、SQL:BatchCompletedイベントの行とSQL:BatchStartingイベントの行のチェックボックスをオンにします。
注TransactionID列を表示するには、[ すべての列を表示する] チェックボックスをオンにします。
- [ 実行]をクリックして、トレースを開始します。
Business Intelligence Development Studioで、Analysis Servicesプロジェクトを処理します。
SQL Server Profilerで、TransactionID列に同じ値を持つSQL:BatchCompletedイベントとSQL:BatchStartingイベントを探します。通常、これらのイベントには、TextData列にSELECTステートメントが含まれています。これらのイベントについては、SPID列でセッションIDを取得します。
データソースに接続するには、SQL Server Management Studioを起動します。
新しいクエリを作成し、次のTransact-SQLステートメントを実行します。
session_id = sys.dm_exec_sessionsからsession_id = Transaction_Isolation_Levelを選択します。session_id=
注:このステートメントのは、手順7で取得したセッションIDのプレースホルダーです。
- 上の結果タブ、Transaction_Isolation_Level列の値をメモします。この値は、Analysis Servicesプロジェクトで使用しているトランザクション分離レベルを示します。スナップショットトランザクション分離レベルが有効な場合、Transaction_Isolation_Level列の値は5です。
次の表に、Transaction_Isolation_Level列の値と対応するトランザクション分離レベルを示します。