время выполнения запроса (mssql 7.0)

Brand
Дата: 03.01.2001 15:50:33
Есть ли в mssql 7.0 какое-нибудь внутреннее средство для получения
времени выполнения запроса (profiler или perfomance monitor не подходят)?
Александр Гладченко
Дата: 03.01.2001 16:35:02
Я, обычно, пользуюсь для этих целей QA.
SergSuper
Дата: 03.01.2001 17:23:55
Я делаю примерно так:

declare @d datetime
select @d=GETDATE()

-- некий запрос

select datediff(ss, @d, GETDATE())

Как-то извне наверное можно через ODS, как это делает profiler, но тут я помочь не могу.
Dmitry
Дата: 09.01.2001 14:13:58
Только лучше при этом иметь сервер в однопользовательском режиме. Иначе время выполнения будет величиной довольно случайной (по понятным причинам)
Дед Маздай
Дата: 09.01.2001 16:55:00
Для этого предназначена команда SET STATISTICS TIME { ON | OFF }.

Пример:
dbcc dropcleanbuffers --чистим странички в буфере для чистоты эксперимента
dbcc freeproccache --то же самое с процедурным кэшем
set statistics time on --включаем вывод длительности каждого этапа
select * from orders --меряем запрос
set statistics time off

Вывод:
SQL Server parse and compile time:
CPU time = 40 ms, elapsed time = 418 ms.
SQL Server parse and compile time:
CPU time = 0 ms, elapsed time = 0 ms.

(830 row(s) affected)

SQL Server Execution Times:
CPU time = 20 ms, elapsed time = 649 ms.



Пояснения:
Elapsed Time есть разность системного времени между началом выполнения запроса и тем моментом, когда пакет DONE был успешно отослан клиентскому приложению. СPU Time есть умноженное на миллисекунды количество тиков процессора, которые он занимался запросом. Если обработка запроса уложилась в промежуток между тиками, будет показано нулевое время. CPU Time является более реальной мерой, поскольку Elapsed Time включает ожидание свободных циклов процессора, простои из-за того, что нужные данные оказались блокированными, повторы при сбоях в передаче результатов на клиента и пр. Elapsed Time может сильно превышать CPU Time, если на машине одновременно с SQL Server крутится несколько тяжелых приложений, много одновременных пользователей, сетка тормозит и т.д.