Прерывистый медленный запрос при использовании предложения WHERE - PullRequest
1 голос
/ 11 ноября 2010

Я использую SQL Server 2008 и совсем недавно у меня возникли периодически возникающие проблемы при обращении к базе данных.

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

Обычно я использую этот запрос:

ВЫБРАТЬ имя из демографии, ГДЕ имя не NULL

и он запускается за <1 секунду. Однако в эти «проблемные времена» запрос займет около 3 минут. Как только запрос пройден, я могу запустить его снова, и он работает просто отлично (почти мгновенно). </p>

Кроме того, пока выполняется приведенный выше запрос, я могу использовать это:

ВЫБРАТЬ имя из демографии

и работает отлично. Без задержки. Единственное отличие заключается в предложении WHERE. Итак, с чего начать устранение неполадок? Какими инструментами мне следует воспользоваться, чтобы найти причину?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

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

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

1 голос
/ 11 ноября 2010

Посмотрите, не заблокирован ли другой процесс во время периодов неисправностей.

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