Назад | Перейти на главную страницу

Необъяснимые всплески активности ЦП и диска в SQL Server 2005

Прежде чем я задам свой вопрос, позвольте мне описать ситуацию. У меня есть сервер базы данных с несколькими таблицами. Две из самых больших таблиц содержат более 800 тыс. Строк каждая. Большинство строк имеют размер менее 10 КБ, хотя примерно 1 из 100 строк будет иметь размер> 1 МБ, но <4 МБ. Таким образом, из 1,6 миллиона строк примерно 16000 из них будут этими большими строками. Причина, по которой они такие большие, заключается в том, что мы храним двоичные капли zip-файлов в базе данных, но я отвлекся.

У нас есть служба, которая постоянно работает в фоновом режиме, отсекая по 10 строк из каждой из этих двух таблиц. На приведенном выше графике монитора производительности это небольшие выпуклости (красный для ЦП, зеленый для дисковой очереди). Раз в минуту мы получаем большой всплеск активности ЦП вместе со скачком активности диска, обозначенный красной стрелкой на скриншоте.

Я запустил профилировщик SQL Server, и нет ничего такого, что могло бы объяснить этот всплеск. Я подозреваю, что этот всплеск возникает при удалении одной из больших строк. Я отправил результаты профилировщика в мастер настройки и не получил рекомендаций по оптимизации (т.е. я предполагаю, что это означает, что моя база данных правильно проиндексирована для моей текущей рабочей нагрузки).

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

Обновить:

После дальнейшего изучения этого вопроса, всплеск использования ЦП и диска снизился до автоматической контрольной точки SQL-сервера. База данных использует простая модель восстановления, и это обрезает файл журнала на каждой контрольной точке. Мы можем видеть это на следующем графике. Как описано на MSDN, контрольные точки появятся, когда журнал транзакций заполнится на 70% и мы будем использовать простую модель восстановления.

Это было поучительно, и я определенно кое-что узнал!

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

https://stackoverflow.com/questions/865659/sql-server-checkpoints