SQL Server 2008を使用していますが、DMVを使用してプロシージャ呼び出しをキャッチし、追跡のためにテーブルに保存する必要があります。ストアドプロシージャの呼び出しを取得することは可能ですか?
質問する
700 次
2 に答える
2
お探しsys.dm_exec_procedure_stats
ですか?(MSDNリンク)
キャッシュされたストアドプロシージャの集計パフォーマンス統計を返します。ビューは、キャッシュされたストアドプロシージャプランごとに1つの行を返します。行の有効期間は、ストアドプロシージャがキャッシュされたままである限りです。ストアドプロシージャがキャッシュから削除されると、対応する行がこのビューから削除されます。そのとき、sys.dm_exec_query_statsと同様にパフォーマンス統計SQLトレースイベントが発生します。
これから必要なストアドプロシージャ実行統計を監査テーブルに選択できるはずです。必ずしもストアドプロシージャではないアドホッククエリを含めるように監査を拡張する場合は、代わりにsys.dm_exec_query_statsを確認することを検討してください。
于 2012-10-11T07:39:37.773 に答える
2
たぶんあなたが探しているものを完全にではないかもしれませんが、それは始まりかもしれません。ストアドプロシージャの有無にかかわらず、実行されているクエリを探している場合は、これを確認することをお勧めします
select case
when r.statement_end_offset = -1 then
substring(s.text, (r.statement_start_offset / 2), len(s.text))
else
substring(s.text, (r.statement_start_offset / 2), (r.statement_end_offset / 2) - (r.statement_start_offset / 2))
end as statement_text
, q.query_plan
, r.cpu_time
, r.reads as request_reads
, r.writes as request_writes
, r.logical_reads as request_logical_reads
from sys.dm_exec_requests r
cross apply sys.dm_exec_sql_text(r.sql_handle) s
cross apply sys.dm_exec_query_plan(r.plan_handle) q
実行されたすべてのクエリが表示されます。
于 2012-10-11T17:47:58.950 に答える