2017-06-19 43 views
0

是否有可能监控存储过程的执行时间?我想在一天中多次自动执行一个存储过程,并希望将这些结果保存到某处以便稍后分析它们?MSSQL:如何监视存储过程的执行时间

+0

很好,因为你正在执行它...你可以只记下它每次执行它...或SET STATISTICS TIME ON并存储结果... – scsimon

回答

0

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

首先创建一个包含例如proc_name中,语句日志表,开始/结束时间,rows_affected,...

在你的程序

然后保存开始时间到一个变量只是每个语句执行之前,以及会后声明插入日志表值(proc_name,语句,@StartTime,getdate(),@@ rowcount)。

然后你就可以分析顶(10)长期运行的报表/对应这样的程序:

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

它是特效,如正在执行的每天(但不是每一秒),ETL特效有用的,你甚至可以记录错误

+0

这使得sence,但我需要更多的调查,如何实际使其工作。 我给你一点点更详细的信息,我尽力去完成,也许你可以给一些提醒: 我在存储过程执行一些randome值一个特定的命令,而不是整个存储过程。 我输入不同的产品ID以收集产品信息。如果我手动执行它,我会看到需要多长时间,但我想自动执行此操作,它会自动执行随机选择的ID并将执行时间保存在某处。 – Ziil

+0

如果您可以更改过程文本,只需将插入语句添加到日志表中 – sepupic

+0

我更新了我的评论,我按下了输入新行并无意中保存了它。 – Ziil