Обновление статистики, похоже, вызывает проблемы - PullRequest
0 голосов
/ 28 октября 2009

Этим утром проснулись со страницей о том, что наш кластер не работает. Он вернулся сразу же. Я нашел журналы ошибок журнала с записями о вводе-выводе, занимающих более 15 секунд. Наш сервер мониторинга попытался пропинговать сервер, и произошла ошибка тайм-аута.

Я проверил один из наших инструментов мониторинга, чтобы увидеть, что происходит в 4:30 утра. Похоже, статистика обновляется в одной из наших больших баз данных. Инструмент показывает наш диск максимально Я вижу очень высокий% занятых времен для одного из дисков.

Теперь sqlagent проходит через все остальные базы данных в алфавитном порядке, делая то же самое. У нас есть автоматическое обновление статистики - но я думал, что это происходит по мере необходимости. У меня сейчас нет включенных заданий обновления статистики (о которых я знаю - и монитор заданий не показывает запущенных заданий), поэтому я не совсем уверен, что вызвало это.

http://support.microsoft.com/default.aspx?scid=kb;en-us;195565 - подтверждает мои мысли о необходимости автостатов.

То же самое произошло вчера вечером около 18:30 - в той же большой базе данных - несколько избранных статистиков из ... операторов.

Диски находятся в сети SAN, и мы работаем с последней версией SQL 2005.

Ответы [ 2 ]

0 голосов
/ 28 октября 2009

Ошибка 15 секунд не всегда корректна, иногда она вызвана смещением времени ЦП, см. Идентификатор события 833: запросы ввода-вывода занимают более 15 секунд . Убедитесь, что запросы ввода-вывода действительно занимают так много времени (обратите внимание, что счетчики perfmon в ОС страдают от одной и той же проблемы смещения времени).

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

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

0 голосов
/ 28 октября 2009

Если вы получаете 15-секундные ошибки ввода-вывода, я бы начал диагностику с более низкого уровня, проверьте, был ли недавно обновлен драйвер, относящийся к вводу-выводу, например, Powerpath emulex и т. Д. Когда я столкнулся с этой ошибкой до того, как она была вызвана неисправными подсистемами io и не была напрямую SQL, это был компонент, который загрузил диск и выявил проблему.

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