この記事では、Analysis Services でスナップショット トランザクション分離レベルを有効にするために従う必要がある手順について説明します。
元の製品バージョン: SQL Server
元の KB 番号: 919160
はじめに
この記事では、Microsoft SQL Server Analysis Services でスナップショット トランザクション分離レベルを有効にする方法について説明します。 さらに、この記事では、スナップショット トランザクション分離レベルが有効かどうかをテストする方法について説明します。
スナップショット トランザクション分離レベルを有効にする
Analysis Services では、スナップショット トランザクション分離レベルを使用して SQL Server データ ソースに接続できます。 スナップショット トランザクション分離レベルを有効にするには、次の手順に従います。
SQL Server Management Studio で、次のステートメントを実行します。
ALTER DATABASE <DatabaseName> SET READ_COMMITTED_SNAPSHOT ON GO ALTER DATABASE <DatabaseName> SET ALLOW_SNAPSHOT_ISOLATION ON GO
Note
これらのステートメントでは、
<DatabaseName>
は、Analysis Services で使用するデータ ソース内のデータベースのプレースホルダーです。Business Intelligence Development Studio で、新しい Analysis Services プロジェクトを作成します。
または、既存の Analysis Services プロジェクトを開きます。
手順 2 で新しい Analysis Services プロジェクトを作成した場合は、次の手順に従います。
- ソリューション エクスプローラーで、[データ ソース右クリックし、[新しいデータ ソース] をクリック。
- [ 接続の定義方法の選択 ダイアログ ボックスで、[新規 ] をクリック。 [接続マネージャー] ダイアログ ボックスが表示されます。
手順 2 で既存の Analysis Services プロジェクトを開いた場合は、次の手順に従います。
- Data Sources フォルダーで、既存のデータ ソースをダブルクリックします。
- [ Data ソース デザイナー ] ダイアログ ボックスで、[編集 クリック。 [接続マネージャー] ダイアログ ボックスが表示されます。
[接続マネージャー] ダイアログ ボックス[Providerの一覧で [
Native OLE DB\SQL Native Client] をクリックします。 サーバー名と認証を指定します。
接続をテストするには、[接続のテストをクリックします。
左側のウィンドウで、[ すべて] をクリック。
右側のウィンドウで、MARS 接続の一覧で True をクリックし、 OKをクリックします。
[Data ソース デザイナー] ダイアログ ボックスで、[Isolation] ボックスの一覧の [Snapshot をクリックし、OK をクリックします。
スナップショット トランザクション分離レベルが有効になっているかどうかをテストする
スナップショット トランザクション分離レベルが有効かどうかをテストするには、次の手順に従います。
SQL Server プロファイラーを開始します。
Analysis Services プロジェクトで指定したデータ ソースに接続するための新しいトレースを作成します。
[ Trace のプロパティ ] ダイアログ ボックスで、[ Events の選択 ] タブをクリックします。
TransactionID列で、
SQL:BatchCompleted
イベントの行とSQL:BatchStarting
イベントの行のチェック ボックスをオンにします。Note
TransactionID列を表示するには、[すべての列の表示] チェック ボックスをオンにします。
[実行] をクリックしてトレースを開始します。
Business Intelligence Development Studio で、Analysis Services プロジェクトを処理します。
SQL Server プロファイラーで、
SQL:BatchCompleted
イベントと、TransactionID 列で同じ値を持つSQL:BatchStarting
イベントを探します。 通常、これらのイベントには、TextData 列にSELECT
ステートメントが含まれます。 これらのイベントの場合は、SPID 列の session ID を取得します。データ ソースに接続するには、SQL Server Management Studio を起動します。
新しいクエリを作成し、次の Transact-SQL ステートメントを実行します。
select session_id,Transaction_Isolation_Level from sys.dm_exec_sessions where session_id=<SPID>
Note
このステートメントでは、 <SPID> は、手順 7 で取得したセッション ID のプレースホルダーです。
[ Results タブで、 Transaction_Isolation_Level 列の値をメモします。 この値は、Analysis Services プロジェクトで使用しているトランザクション分離レベルを示します。 スナップショット トランザクション分離レベルが有効になっている場合、 Transaction_Isolation_Level 列の値は 5。 次の表に、 Transaction_Isolation_Level 列の値と、対応するトランザクション分離レベルを示します。
値 トランザクション分離レベル 0 指定されていません。 1 ReadUncommitted 2 ReadCommitted 3 反復可能 4 シリアル化可能 5 スナップショット
関連情報
スナップショット トランザクション分離レベルの詳細については、SQL Server 2005 オンライン ブックの次のトピックを参照してください。
- SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
- 行のバージョン管理に基づく分離レベルの有効化
- データベース エンジンにおける分離レベル