2

特定のページで使用されているすべての SP を見つける必要があります。問題は、それらがページから直接呼び出されるのではなく、他のプロジェクトの他のアセンブリから呼び出されることです。そのため、すべてのコードを分析してそれらを見つける必要があります。たぶん他の方法が存在すると思いますか?アプリケーションでこのページを実行するだけで、SQL サーバーが呼び出しているすべての瞬間をキャッチできますか? VS 2010、MSSQL 2008、C#、Web フォームを使用。

4

1 に答える 1

0

プロファイラーを使用して、アプリケーションの特定のページにある SP のリストを取得するというアイデアを思いつきました。これは、コメントを残した 2 人から開発したものです。ここで、私が Profiler をどのように使用したかについて詳しく説明します。

  1. プロファイラーを実行
  2. TSQ_SP テンプレートの選択
  3. [イベントの選択] タブで、[すべての列を表示] チェックボックスを選択します
  4. 同じページで、1 つのイベントのみをチェックします: SP:Completed
  5. 列フィルターで、ApplicationName、DatabaseName、HostName、LoginName のフィルターを設定します。実際には、DatabaseName と HostName だけで十分です。VS からローカルでアプリケーションを実行するため、HostName をコンピューター名として使用します。
  6. トレース プロパティをテンプレートとして保存します。
  7. トレースを実行
  8. アプリケーションを実行します。
  9. 必要なページをロードする前にトレースを消去する
  10. ページを開き、ページ上のさまざまなボタンやコントロールを押す
  11. ページでのすべてのアクションが完了したら、Trace を Trace Table として db に保存します。
  12. 次のクエリを実行します。

    SPTableName から DISTINCT ObjectName を選択

このページの SP のリストを取得します。各ページで SP が何度も実行されるため、DISTINCT を使用すると SP の繰り返しをなくすことができます。

ページごとに 9 ~ 12 を繰り返します。

于 2012-10-18T21:23:03.617 に答える