2017-06-19 16 views
0

ストアドプロシージャの実行時間を何とか監視できますか?私は1日に複数のストアドプロシージャを自動的に実行したいのですが、これらの結果を後で分析するためにどこかに保存したいのですか?私はそれがMSSQLエクスプレスにバンドルされていると信じていhttps://docs.microsoft.com/en-us/sql/tools/sql-server-profiler/sql-server-profilerMSSQL:ストアドプロシージャの実行時間を監視する方法

+0

あなたはそれを実行しているので...あなたはそれを実行するたびに注意することができます...または統計情報の設定をONにして、結果を保存してください... – scsimon

答えて

0

私は、MSSQLプロファイラを使用して幸運を持っていました。

+0

プロファイラは推奨されませんパフォーマンス上の魅力です)。交換は拡張イベントです。 – alroc

+0

推奨されていませんでした。ありがとう。 – circusdei

0

プロシージャの実行時間全体だけでなく、各プロシージャの実行時間を記録することもできます。

第1の実施proc_nameに、文に含むログ・テーブルを作成し、あなたの手順で次に

だけで、すべての文の実行前に変数へのStartTimeを保存し、そして、... /終了時間、rows_affectedを始めるステートメントの後ログテーブルの値(proc_name、statement、@StartTime、getdate()、@@ rowcount)に挿入します。

次に、あなたがこのような(10)長時間実行文/対応する手順をトップを分析することができます

select top 10 * 
from dbo.log 
order by datediff(ss, StartTime, EndTime) desc 

それは毎日実行(ただし、毎秒)され、このようなETLのprocsのようprocsのために便利だとあなたエラーをログに記録することもできます

+0

これは意味がありますが、実際に動作させる方法をもう少し調べる必要があります。 私はあなたに少し詳細な情報を与え、私が達成しようとしているものは多分助言を与えることができます: ストアドプロシージャでは、 私は異なる製品IDを入力して製品情報を収集します。私が手動で実行すると、どれくらいの時間がかかるかがわかりますが、これを自動化して、自動的にランダムに選択されたIDで実行し、実行時間をどこかに保存します。 – Ziil

+0

プロシージャテキストを変更できる場合は、挿入テーブルをログテーブルに追加するだけです。 – sepupic

+0

私のコメントが更新されました。新しい行の入力を押して、意図せず保存しました。 – Ziil

関連する問題