Проблемы с производительностью SQL-сервера? Посмотрите на параметр MaxDOP

30 Мая 2014
ParallelismНастройки распараллеливания (parallelism) играют ключевую роль в обработке тяжелых запросов и могут вызывать проблемы с производительностью.

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

Правильные настройки параметра MaxDOP (максимальной степени распараллеливания – maximum degree of parallelism) практически невозможно определить без тестирования в реальной среде с реальными нагрузками. Специалисты Idera рекомендуют использовать следующие настройки как базовые:

  • Если сервер использует SMP (симметричный мультипроцессинг) и количество процессоров меньше или равно 8-ми, то лучше всего оставить этот параметр равным 0 (дефолтное значение).
  • Если сервер использует SMP (симметричный мультипроцессинг) и количество процессоров больше 8-ми, то параметр надо поставить равным 8-ми.
  • Если сервер использует NUMA (неравномерный доступ к памяти) – то параметр надо установить равным количеству процессоров на узел NUMA, или 8-ми, в зависимости от того, какое число меньше.

Большинство SQL-серверов сегодня работают на NUMA c большим количеством процессоров, чтобы справиться с очень большой нагрузкой. Поэтому последняя указанная рекомендация скорее всего будет самой часто используемой.

По материалам с сайта idera.com, Glenn Berry’s SQL Performance, SQLSoldier

Возникли вопросы? Мы готовы уточнить интересующие Вас детали "по телефону" или "по e-mail".
Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent