Общие рекомендации по оптимизации работы БД SQL¶
Если БД SQL работает медленно, рекомендуется проверить следующие настройки:
Рекомендуется пройти по всем пунктам и проверить (или поправить).
1. Настройка железа в BIOS
1.1. проверить настройки производительности и электропитания, должно быть Max Performance (никак не Performance_Per_Watt, Balanced, PowerSaving или проч.)
Если есть пункт CPU Power Saving, то его поставить в OS Controlled mode, или что-то аналогичное
1.2. если поддерживаются NUMA, то отключить NUMA Node Interleaving (или поставить Enable NUMA)
2. Настройки хоста:
2.1. В схеме электропитании поставить Max Performance
2.2. Для сетевых адаптеров настройках PowerManagement запретить PowerSaving для экономии энергии
3. Настройка виртуальной машины (ВМ):
3.1. Обязательно установить гостевое дополнение для виртуальной машины.
3.2. Настроить ОС на ВМ на Max Performance, запретить отключение устройств для экономии энергии.
3.3. Если есть NUMA, настроить много виртуальных сокетов по одному ядру, а не один сокет с несколькими ядрами (хотя в последнее время ВМ вроде бы научились правильно распределять NUMA)
4. Настройка MS SQL:
4.1. Настроить Блокировку страниц в памяти,
4.2. Настроить Мгновенную инициализация файлов (Database instant file initialization)
4.3. Настроить для антивируса исключение для каталогов, где хранятся файлы баз данных.
4.4. Для базы данных настроить ежедневный план обслуживания (backup, проверка целостности, переиндексация, сброс статистики)
Можно в него добавить для сброса планов выполнения и чистки буферов
DBCC FREEPROCCACHE WITH NO_INFOMSGS;
DBCC DROPCLEANBUFFERS WITH NO_INFOMSGS;