Что представляет собой время выполнения SQL Server?

У меня есть запрос, который я запускаю в двух эквивалентных базах данных, но размещенных на разных серверах MS SQL 2005. Я хочу измерить время запроса на обоих серверах, поэтому попробовал следующее:

SET STATISTICS TIME ON
GO
SELECT TOP 10000 *
  FROM table
GO
SET STATISTICS TIME OFF;
GO

И получил следующий результат:

SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 2 ms.

(10000 row(s) affected)

SQL Server Execution Times:
   CPU time = 16 ms,  elapsed time = 8143 ms.
SQL Server parse and compile time: 
   CPU time = 0 ms, elapsed time = 0 ms.

Мой вопрос: что означает время выполнения SQL Server? Это выполнение запроса только в базе данных или это выполнение запроса, включая передачу данных обратно клиенту, работающему под управлением SQL Server Management Studio?

Спасибо заранее!


person Tomas Vinter    schedule 22.06.2010    source источник


Ответы (1)


Прошедшее время = общее время выполнения запроса (включая ожидание ввода-вывода)

Время процессора = общее время процессора.

Полезная статья на эту тему находится по адресу http://www.sqlservercentral.com/articles/Performance+Tuning/measuringperformance/1323/

person Thomas Rushton    schedule 22.06.2010
comment
Как я понял из статьи, ввод/вывод означает чтение на/с диска и/или в память. То есть, не включая передачу данных по tcp/ip. Это звучит правильно? - person Tomas Vinter; 22.06.2010
comment
Звучит правильно для меня. Однако вам также может потребоваться принять во внимание любую параллельную обработку. Но, скорее всего, это дисковый ввод-вывод. На форумах SSC есть интересное обсуждение: sql-server-performance.com/faq / - person Thomas Rushton; 22.06.2010