是否有可能监视存储过程执行时间?我想在白天多次自动执行一个存储过程,并希望将这些结果保存到某个地方以便以后进行分析?
答案 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提到过它,但是扩展事件是“现代”方法。没有新表,没有探查器,没有混乱。