【问题标题】:SQL Server Stored Procedure self-profiled for execution time?SQL Server 存储过程自我分析执行时间?
【发布时间】:2018-08-27 07:27:56
【问题描述】:

每次执行过程时,我都需要在表中查找并存储过程的执行时间。

我有什么方法可以在程序内做到这一点?假设使用查询来查找其执行时间并将其写入表中?

除了使用 Profiler 过滤成千上万条记录之外,还有其他更好的方法来记录过程的执行时间吗?

谢谢

【问题讨论】:

  • filter thousand of thousands of records - 在开始跟踪之前设置适当的过滤器。

标签: sql-server tsql execution-time sql-server-profiler


【解决方案1】:

您可以简单地使用两个参数,并在过程开始时初始化一个,在过程结束时初始化下一个。

create procedure myproc as
begin
    declare @start_time datetime = getdate()

    (rest of procedure code)

    declare @end_time datetime = getdate()
end

在退出过程之前,您可以将这些值插入到日志表中。

INSERT INTO Proc_Exec_Log (procedure_name, start_time, end_time) 
VALUES ('myproc', @start_time, @end_time);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 2011-11-07
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多