特定のページで使用されているすべての SP を見つける必要があります。問題は、それらがページから直接呼び出されるのではなく、他のプロジェクトの他のアセンブリから呼び出されることです。そのため、すべてのコードを分析してそれらを見つける必要があります。たぶん他の方法が存在すると思いますか?アプリケーションでこのページを実行するだけで、SQL サーバーが呼び出しているすべての瞬間をキャッチできますか? VS 2010、MSSQL 2008、C#、Web フォームを使用。
3278 次
1 に答える
0
プロファイラーを使用して、アプリケーションの特定のページにある SP のリストを取得するというアイデアを思いつきました。これは、コメントを残した 2 人から開発したものです。ここで、私が Profiler をどのように使用したかについて詳しく説明します。
- プロファイラーを実行
- TSQ_SP テンプレートの選択
- [イベントの選択] タブで、[すべての列を表示] チェックボックスを選択します
- 同じページで、1 つのイベントのみをチェックします: SP:Completed
- 列フィルターで、ApplicationName、DatabaseName、HostName、LoginName のフィルターを設定します。実際には、DatabaseName と HostName だけで十分です。VS からローカルでアプリケーションを実行するため、HostName をコンピューター名として使用します。
- トレース プロパティをテンプレートとして保存します。
- トレースを実行
- アプリケーションを実行します。
- 必要なページをロードする前にトレースを消去する
- ページを開き、ページ上のさまざまなボタンやコントロールを押す
- ページでのすべてのアクションが完了したら、Trace を Trace Table として db に保存します。
次のクエリを実行します。
SPTableName から DISTINCT ObjectName を選択
このページの SP のリストを取得します。各ページで SP が何度も実行されるため、DISTINCT を使用すると SP の繰り返しをなくすことができます。
ページごとに 9 ~ 12 を繰り返します。
于 2012-10-18T21:23:03.617 に答える