Приостановлен статус Монитор активности SQL
Что может привести к приостановке выполнения запроса в Management Studio?
- Я выполняю простой выбор верхней части 60000 из таблицы (которая имеет 11 миллионов строк), и результаты возвращаются в течение секунды или двух.
- Я меняю запрос на top 70000, и результаты занимают до 40 мин.
от выполнения немного поиска по другой, но связанной с этим проблеме я наткнулся на кого-то, используя DBCC FREEPROCCACHE, чтобы исправить это.
- Я бегу Инструкция DBCC FREEPROCCACHE, а затем повторите запрос на 70000 и это seemmed на работу.
однако проблема по-прежнему возникает с другим запросом.
- я увеличиваю, чтобы сказать 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.
попробуйте следующие вещи:
- используйте NOLOCK или установите уровень изоляции транзакций в верхней части запроса
- проверьте свой план выполнения и настроить запрос, чтобы быть более эффективным!--6-->