次の方法で共有


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

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 サブディレクトリに含まれます。