Как точно измерить время, затрачиваемое хранимой процедурой / функцией - PullRequest
1 голос
/ 13 ноября 2010

У меня есть следующие опции

  1. Использовать опцию «Включить статистику клиента» в SSMS.(Я принимаю «Время ожидания на ответах сервера» как время, хранимое хранимой процедурой)
  2. Захват времени начала и окончания и получение различий.

Это то, что я делаю,

DECLARE @startTime DATETIME
    SET @startTime = GETUTCDATE()

   EXEC MyStoredProc

  PRINT 'Execution Time : ' +  CAST(DATEDIFF(ms,@startTime,GETUTCDATE()) AS NVARCHAR(20)) + ' milliseconds'

Но иногда я вижу большую разницу между значениями, которые я получаю из обоих методов для одной и той же хранимой процедуры, которую я начинаюдумаю, что я делаю что-то не так здесь.Какой метод я должен использовать?или есть ли лучший способ рассчитать время хранимой процедуры?

1 Ответ

5 голосов
/ 13 ноября 2010

Убедитесь, что вы выполняете следующее, чтобы получить хороший базовый показатель каждый раз:

CHECKPOINT
GO
DBCC DROPCLEANBUFFERS
GO
DBCC FREEPROCCACHE
GO

Украдено отсюда.

В противном случае вы можете извлекать кэшированные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...