1

一連のストアド プロシージャを最適化しようとしています。これらのストアド プロシージャはサーバー A にあり、次のアクションを実行します。

  • サーバー A のパラメーター化されたクエリに基づいてサーバー B のデータを削除する

    DELETE FROM B (リンク サーバー経由)
    DO SOME JOIN ON A
    WHERE Ax IN (@ID1、@ID2、@ID3、@ID4)

  • サーバー A のパラメーター化されたクエリに基づいて、サーバー B にデータを挿入します。

    INSERT INTO B (リンク サーバー経由)
    DO SOME JOIN ON A
    WHERE Ax IN (@ID1、@ID2、@ID3、@ID4)

ストアド プロシージャのプロファイルを作成しようとすると、有用なトレース ファイルが得られません。サーバー A をトレースすると、ストアド プロシージャの実行のみが表示されますが、リンク サーバーを介してサーバー B を参照しているため、ストアド プロシージャの内部クエリは表示されません。サーバー B をトレースすると、サーバー A のストアド プロシージャに関連するクエリが表示されません。これは、ストアド プロシージャが実際にサーバー A で実行されたためだと思います。

要するに、これらのクエリをサーバー A のストアド プロシージャの一部として追跡し、サーバー A と B で実行されるクエリを最適化するにはどうすればよいでしょうか?

4

1 に答える 1

3

ストアド プロシージャをトレースする必要があります: サーバー A の SP:StmtStarting および SP:StmtCompleted イベントとサーバー B の RPC:Completed

于 2009-07-14T09:55:46.987 に答える