如何计算SQL Server存储过程的执行时间

时间:2014-12-30 12:44:42

标签: sql sql-server sql-server-2005 stored-procedures

我有一个存储过程。 我想检查执行所需的时间。 请注意,我无权访问探查器。 我正在使用SQL Server 2005

我尝试使用以下批量查询

SELECT CONVERT( VARCHAR(24), GETDATE(), 121)
EXEC cif_query_trans_by_card_Final2 '0060F423F28A6095AD070CEFFD7E81D245D7D0CD7B', '11223345'
SELECT CONVERT( VARCHAR(24), GETDATE(), 121)

但是我在两个时间戳中得到的值与2014-12-30 18:09:52.653

相同

非常感谢任何帮助。

提前致谢。

3 个答案:

答案 0 :(得分:3)

SET STATISTICS TIME ON

<强> http://msdn.microsoft.com/en-us/library/ms190287.aspx

  

当SET STATISTICS TIME为ON时,将显示语句的时间统计信息。关闭时,不显示时间统计信息。

     

SET STATISTICS TIME的设置在执行或运行时设置,而不是在分析时设置。

  1. 打开新的查询窗口

  2. 运行以下SQL SET STATISTICS TIME ON

  3. 在同一窗口中,现在运行存储过程

  4. 切换到Messages窗口以查看结果统计信息

  5. 示例:

    SQL Server parse and compile time: 
       CPU time = 0 ms, elapsed time = 0 ms.
    
    (65536 row(s) affected)
    
     SQL Server Execution Times:
       CPU time = 15 ms,  elapsed time = 272 ms.
    

答案 1 :(得分:1)

使用如下:

set statistics time on

-- your query

set statistics time off

答案 2 :(得分:0)

你需要放置2个GO:

SELECT CONVERT( VARCHAR(24), GETDATE(), 121)
GO
EXEC cif_query_trans_by_card_Final2 '0060F423F28A6095AD070CEFFD7E81D245D7D0CD7B', '11223345'
GO
SELECT CONVERT( VARCHAR(24), GETDATE(), 121)

但是:即使没有你的功能,你也会有几毫秒的延迟。

相关问题