SQL Server 2005 - запросы сразу переходят в приостановленное состояние - PullRequest
0 голосов
/ 12 марта 2009

У меня проблема со специальным запросом, который обрабатывает довольно большой объем данных. После выполнения запроса статус немедленно переходит в состояние ожидания. Он будет приостановлен примерно на 25 минут, а затем завершит выполнение.

У меня есть зеркальная среда с SQL2K, и тот же запрос выполняется примерно через 2 минуты и никогда не переходит в приостановленное состояние.

@@ version = Microsoft SQL Server 2005 - 9.00.3068.00 (Intel IA-64), 26 февраля 2008 г. 21:28:22 Авторское право (c) 1988-2005 Microsoft Corporation Enterprise Edition (64-разрядная версия) для Windows NT 5.2 (сборка 3790: пакет обновления 2)

Ответы [ 2 ]

1 голос
/ 21 марта 2009

Возможно, статистика устарела и нуждается в обновлении. Обновите их, но лучше перестроить индексы одновременно.

Или у вас их нет. Установлена ​​ли статистика для автоматического создания и обновления? Я видел случаи, когда они отключались, потому что кто-то не понимал, для чего они и как происходят обновления.

Примечание: частота выборки статистики основана на последнем обновлении статистики. Так что если вы в последний раз взяли 100%, это может занять некоторое время.

Что происходит, когда вы запускаете запрос дважды? Это быстрее во второй раз?

0 голосов
/ 22 марта 2009

Трудно сказать по ограниченной информации, но мне было бы любопытно узнать, что происходит с точки зрения производительности на сервере во время выполнения запроса. Вы можете получить показатели производительности с помощью Perfmon, и у меня есть руководство по этому вопросу здесь:

http://www.brentozar.com/perfmon

Во время выполнения запроса, как выглядит статистика каждого из этих счетчиков? Если вы соберете статистику, как описано в этой статье, вы можете отправить мне электронное письмо по адресу brento@brentozar.com, и я посмотрю на них, чтобы узнать, что происходит.

Еще одна вещь, которая может помочь, - это план выполнения запроса. Зайдите в SQL Server Management Studio, введите запрос и нажмите «Запрос», «Показать примерный план выполнения». Щелкните правой кнопкой мыши в любом месте плана и сохраните его в виде файла, а затем другие люди смогут увидеть, как выглядит запрос.

Затем в идеале нажмите «Запрос», «Включить фактический план выполнения», выполните запрос и перейдите на вкладку «План выполнения». Сохрани это тоже. Если вы опубликуете два плана (или отправите их мне по электронной почте), вы получите лучшие ответы о том, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...