Приостановлен статус Монитор активности SQL

Что может привести к приостановке выполнения запроса в Management Studio?

  1. Я выполняю простой выбор верхней части 60000 из таблицы (которая имеет 11 миллионов строк), и результаты возвращаются в течение секунды или двух.
  2. Я меняю запрос на top 70000, и результаты занимают до 40 мин.

от выполнения немного поиска по другой, но связанной с этим проблеме я наткнулся на кого-то, используя DBCC FREEPROCCACHE, чтобы исправить это.

  1. Я бегу Инструкция DBCC FREEPROCCACHE, а затем повторите запрос на 70000 и это seemmed на работу.

однако проблема по-прежнему возникает с другим запросом.

  1. я увеличиваю, чтобы сказать 90000 или если я попытаюсь открыть таблицу с помощью [Right - >Open Table], она тянет около 8000 записей и останавливается.

проверка журнала действий, когда я делаю открытую таблицу, показывает, что сеанс был приостановлен с типом ожидания "Async_Network_IO". За сеанс выбрать из 90000 статус "спящий", это тот же статус для вышеуказанного запроса select 70000, который вернулся, но в 45min. Мне странно, что статус показывает "спящий", и он, похоже, не меняется на "управляемый" (у меня есть монитор activiy, освежающий когда-либо 30sec).

дополнительная информация:

  • Я не запускаю как открытую таблицу, так и выберите 90000 одновременно. Все запросы выполняются по одному.
  • я запускаю 32bit SQL Server 2005 С ПАКЕТОМ ОБНОВЛЕНИЯ 2 CU9. Я пробовал обновление до SP3, но столкнулся с установкой failurs. Проблемы возникали до того, как я попробовал это обновление.
  • настройка сервера является активным / активным кластером проблема возникает на любом узле, а другой экземпляр не имеет этой проблемы.
  • у меня есть ~20 других баз данных на этом же экземпляре сервера, но только эта одна БД видит проблему.
  • эта база данных становится довольно большой. В настоящее время он составляет 76756.19 MB. Файл данных 11,513 МБ.
  • Я вошел в систему локально на сервере через удаленный рабочий стол.

2 ответов


тип ожидания "Async_Network_IO"означает, что ожидание клиента для получения результирующего набора в качестве сетевого буфера SQL Server заполнено. Почему ваш клиент не получает данные своевременно, я не могу сказать.

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

Что-то стоит посмотреть, это антивирусные сканеры, если они контролируют сеть соединения иногда они могут отставать, его часто видно, что они забивают весь процессор.


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

попробуйте следующие вещи:

  1. используйте NOLOCK или установите уровень изоляции транзакций в верхней части запроса
  2. проверьте свой план выполнения и настроить запрос, чтобы быть более эффективным!--6-->