如何准确测量存储过程/函数所用的时间

时间:2010-11-13 00:49:43

标签: sql sql-server tsql

我有以下选项

  1. 使用SSMS中的“包含客户端统计信息”选项。 (我将'服务器回复的等待时间'作为存储过程所花费的时间)
  2. 捕捉开始和结束时间并获取差异。
  3. 这就是我的工作,

    DECLARE @startTime DATETIME
        SET @startTime = GETUTCDATE()
    
       EXEC MyStoredProc
    
      PRINT 'Execution Time : ' +  CAST(DATEDIFF(ms,@startTime,GETUTCDATE()) AS NVARCHAR(20)) + ' milliseconds'
    

    但是我有时看到我从同一存储过程的两个方法得到的值之间存在很大差异,我开始认为我在这里做错了。我应该使用哪种方法?或者有更好的方法来计算存储过程的时间吗?

1 个答案:

答案 0 :(得分:5)

确保每次运行以下内容以获得良好的基线:

CHECKPOINT
GO
DBCC DROPCLEANBUFFERS
GO
DBCC FREEPROCCACHE
GO

Stolen from here.

否则您可能会提取缓存数据。