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

Есть ли причина, по которой DBCC CHECKDB следует запускать каждые 15 минут?

Я помогаю клиенту с веб-приложением для вертикального рынка, написанным на ASP.NET. В качестве серверной части используется SQL Server 2005. У клиента проблемы с производительностью приложения, и поддержка поставщика не очень помогла решить эту проблему. Итак, клиент привел меня, чтобы я по-новому взглянул на проблему. Выполняя базовый обзор системы и оборудования, я заметил, что в SQL Server было запланировано выполнение задания «Обслуживание» каждые 15 минут, которое выполняет DBCC CHECKDB, а затем резервное копирование журнала транзакций. Эта работа занимала около 6 минут в рабочее время.

Когда я спросил сотрудников службы поддержки поставщика о том, необходимо ли это, и можем ли мы перенести DBCC CHECKDB на один раз в ночь, ответ был «это конфиденциальная информация, и ничего не трогайте».

Я в основном пытаюсь понять. Есть ли причина, по которой DBCC CHECKDB следует запускать каждые 15 минут? Кроме того, очевидное влияние во время выполнения задания, как еще выполнение этой команды может повлиять на производительность системы? Например, приводит ли это к тому, что SQL Server теряет то, что хранится в памяти?

DBCC CHECKDB действительно может повлиять на производительность системы - это может повлиять на ЦП, дисковый ввод-вывод и память. Вот несколько документов от Microsoft, в которых описывается, как DBCC CHECKDB может повлиять на производительность вашей системы:

http://msdn.microsoft.com/en-us/library/aa937548(SQL.80).aspx
http://msdn.microsoft.com/en-us/library/ms175515(SQL.90).aspx

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

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

Ответ на проблему производительности или пропускную способность? Как выглядит базовая модель данных? Есть ли у вас какие-либо представления о типах распространенных запросов? Установлены правильные индексы (столбцы в предложении WHERE, для которых нет индекса)?