SQL Server - Studio управления - Клиентская Статистика - Время ожидания на сервере отвечает по сравнению с Клиентским временем обработки

Быстрый запуск дает хороший обзор всех функций.

12
задан Adriaan Stander 1 December 2009 в 17:56
поделиться

2 ответа

«Время ожидания ответов сервера» - это время между последним пакетом запроса, оставленным клиентом, и самым первым пакетом ответа, возвращенным сервером. «Время обработки клиента» - это время между первым и последним ответным пакетом. Кстати, мне не удалось найти документацию, подтверждающую эти утверждения, но я бы сказал, основываясь на моих наблюдениях, что они являются обоснованным обоснованным предположением.

Если вы запустите запрос с большим «временем ожидания ответов сервера» это означает, что серверу потребовалось много времени для создания самой первой строки. Это обычно для запросов, в которых есть операторы, которым необходимо оценить весь подзапрос перед тем, как они продолжат работу (типичный пример - операторы сортировки).

С другой стороны, запрос с очень маленьким «временем ожидания ответа сервера» означает, что запрос смог быстро вернуть первую строку. Однако длительное «время обработки клиента» не обязательно означает, что клиент потратил много времени на обработку, и сервер был заблокирован в ожидании клиента. Это может просто означать, что сервер продолжал возвращать строки из результата, и именно столько времени прошло, пока не была возвращена самая последняя строка.

Вы видите результат изменений в плане запроса, которые, вероятно, удалили оператор, который блокировал выполнение (скорее всего, сортировку), и новый план использует другую стратегию, которая дает первый результат быстрее (вероятно, использует индекс, который гарантирует запрошенный порядок, поэтому сортировка i не требуется), но в целом длится дольше.

Если вас беспокоит, что клиент сдерживает сервер (это может происходить при больших наборах результатов), вам следует изучить wait_type в sys.dm_exec_requests (также информация из sys.dm_os_tasks и sys.dm_os_workers полезны для сеанса, выполняющего исследуемый запрос. Если я не ошибаюсь, сервер ожидает типа ожидания клиента ASYNC_NETWORK_IO . Вы также можете проверить агрегат sys.dm_os_wait_stats , сбросить его с помощью DBCC SQLPERF ("sys.dm_os_wait_stats", CLEAR) , затем запустить запрос и посмотреть, сколько времени складывается тип ожидания ASYNC_NETWORK_IO . Конечно, убедитесь, что во время теста на сервере не происходит никакой другой активности.

dm_os_tasks и sys.dm_os_workers полезны для сеанса, выполняющего исследуемый запрос. Если я не ошибаюсь, сервер ожидает типа ожидания клиента ASYNC_NETWORK_IO . Вы также можете проверить агрегат sys.dm_os_wait_stats , сбросить его с помощью DBCC SQLPERF ("sys.dm_os_wait_stats", CLEAR) , затем запустить запрос и посмотреть, сколько времени складывается тип ожидания ASYNC_NETWORK_IO . Конечно, убедитесь, что во время теста на сервере не происходит никакой другой активности.

dm_os_tasks и sys.dm_os_workers полезны для сеанса, выполняющего исследуемый запрос. Если я не ошибаюсь, сервер ожидает типа ожидания клиента ASYNC_NETWORK_IO . Вы также можете проверить агрегат sys.dm_os_wait_stats , сбросить его с помощью DBCC SQLPERF ("sys.dm_os_wait_stats", CLEAR) , затем запустить запрос и посмотреть, сколько времени складывается тип ожидания ASYNC_NETWORK_IO . Конечно, убедитесь, что во время теста на сервере не происходит никакой другой активности.

CLEAR) , затем запустите запрос, посмотрите, сколько времени складывается с типом ожидания ASYNC_NETWORK_IO. Конечно, убедитесь, что во время теста на сервере не происходит никакой другой активности.

CLEAR) , затем запустите запрос, посмотрите, сколько времени складывается с типом ожидания ASYNC_NETWORK_IO. Конечно, убедитесь, что во время теста на сервере не происходит никакой другой активности.

21
ответ дан 2 December 2019 в 06:08
поделиться

Хорошо, я нашел несколько статей по этой теме. Надеюсь, они могут быть вам полезны. Я должен сказать, что это открыло для меня все новые возможности в отношении настройки производительности запросов.

События ожидания SQL Server: устранение догадок из профилирования производительности

Анализ производительности запросов в SQL Server 2005

Отображение SQL Server база данных ждет

INF: влияние клиента на пропускную способность SQL Server

4
ответ дан 2 December 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: