デバッグ系のストアド プロシージャ

Analysis Services のストアド プロシージャは、実際には C# (あるいは他の CLR または COM 言語) で作成されている CLR または COM ライブラリ (通常は DLL) です。 このため、ストアド プロシージャのデバッグは、Visual Studio デバッグ環境で他のアプリケーションをデバッグする作業とほとんど同じになります。 Visual Studio 開発環境でのストアド プロシージャのデバッグは、統合されたデバッグ機能を使用します。 これらの機能を使用すると、プロシージャ内のさまざまな場所で停止し、メモリやレジスタの値を調査し、変数を変更し、メッセージ トラフィックを観察し、コードの動作を詳細にわたって確認することができます。

ストアド プロシージャをデバッグするには

  1. DLL の作成に使用したプロジェクトを Visual Studio で開きます。

  2. デバッグするプロシージャに対応するメソッドまたは関数内にブレークポイントを作成します。

  3. Visual Studio を使用して、ストアド プロシージャ DLL のデバッグ ビルドを作成します。

  4. DLL をサーバーに配置します。 DLL をサーバーに配置する方法の詳細については、「ストアド プロシージャの作成」を参照してください。

  5. テストするストアド プロシージャを呼び出すアプリケーションが必要です。 このようなアプリケーションを用意していない場合は、SQL Server Management Studio の MDX クエリ エディターを使用して、テストするストアド プロシージャを呼び出す MDX クエリを作成できます。

  6. Visual Studio で、Analysis Services プロセス (Msmdsrv.exe) にアタッチします。

    1. [デバッグ] メニューの [プロセスにアタッチ] を選択します。

    2. [プロセスにアタッチ] ダイアログ ボックスで、[すべてのユーザーからのプロセスを表示する] をオンにします。

    3. [選択可能なプロセス] 一覧の [プロセス] 列で、Msmdsrv.exe をクリックします。 サーバーで Analysis Services のインスタンスが複数実行されている場合は、使用するインスタンスの ID を使用してプロセスを識別する必要があります。

    4. [アタッチ先] テキスト ボックスで、適切なプログラムの種類が選択されていることを確認します。 CLR DLL の場合は、[選択][次のコードの種類をデバッグする][マネージ]、および [OK] の順にクリックします。 COM DLL の場合は、[選択][次のコードの種類をデバッグする][ネイティブ]、および [OK] の順にクリックします。

    5. [アタッチ] をクリックします。

  7. Analysis Services で、ストアド プロシージャを呼び出すプログラムまたは MDX スクリプトを起動します。 デバッガーは、ブレークポイントを含む行に達すると停止します。 ウォッチ ウィンドウで変数を評価し、ロケールを表示し、コードをステップ実行できます。

ライブラリを正しくデバッグできない場合は、対応するプログラム データベース (PDB) ファイルがサーバーの配置場所にコピーされていることを確認してください。 このファイルが登録または配置中にコピーされなかった場合には、DLL と同じ場所に手動でコピーする必要があります。 ネイティブ コード (COM DLL) の場合、PDB ファイルは \debug サブディレクトリに含まれます。 マネージ コード (CLR DLL) の場合、このファイルは \WINDEBUG サブディレクトリに含まれます。

関連項目

概念

多次元モデルのアセンブリの管理

ストアド プロシージャの定義