MSSQL:如何监视存储过程执行时间

时间:2017-06-19 19:59:19

标签: sql sql-server

是否有可能监视存储过程执行时间?我想在白天多次自动执行一个存储过程,并希望将这些结果保存到某个地方以便以后进行分析?

3 个答案:

答案 0 :(得分:0)

我使用MSSQL Profiler好运:https://docs.microsoft.com/en-us/sql/tools/sql-server-profiler/sql-server-profiler

我相信它与MSSQL Express捆绑在一起。

答案 1 :(得分:0)

不仅整个proc执行时间,而且您可以记录每个语句执行时间以获得更多程序。

首先创建一个包含例如proc_name,statement,begin / end time,rows_affected,...

的日志表

然后在您的过程中将StartTime保存到每个语句执行之前的变量中,并在语句插入到日志表值(proc_name,statement,@ StartTime,getdate(),@@ rowcount)之后。

然后你可以分析前(10)个长期运行的语句/相应的程序,如下所示:

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

对于每天执行(但不是每秒)的ETL过程等过程都很有用,你甚至可以记录错误

答案 2 :(得分:0)

alroc提到过它,但是扩展事件是“现代”方法。没有新表,没有探查器,没有混乱。