Использование опции "max degree of parallelism" в Microsoft SQL Server 2000

Если Microsoft SQL Server работает на многопроцессорном компьютере, он определяет оптимальную степень параллелизма, то есть количество процессоров, задействованных для выполнения одной инструкции для каждого из планов параллельного выполнения. Для ограничения количества процессоров в плане параллельного выполнения может быть использован параметр max degree of parallelism. Установленное по умолчанию значение 0 использует все доступные процессоры. Значение выше 1 (до 64) позволяет ограничить максимальное количество процессоров, используемых при выполнении одного запроса. Если указано значение, превышающее число доступных процессоров, используется фактическое число доступных процессоров. Если у компьютера только один процессор, то значение параметра max degree of parallelism учитываться не будет.

Проблемы

  1. При выполнении некоторых запросов на многопроцессорном компьютере может выдаваться сообщение об ошибке:
  2. При выполнении некоторых запросов на многопроцессорном компьютере может наблюдаться 100% загрузка всех процессоров сервера даже при работе только одного пользователя.

Решение

Для решения описанных выше проблем необходимо установить значение параметра max degree of parallelism равным 1. Следует учитывать, что эта установка ограничивает количество процессоров, которые использует SQL Server при выполнении отдельного запроса, и как правило, это не оказывает существеного влияния на время выполнения большинства используемых запросов.
Однако это не ограничивает количество доступных SQL Server процессоров в целом, т.е. два запроса от разных клиентских приложений будут выполняться параллельно.

Если при использовании этих рекомендаций существенно снижается производительность 1С:Предприятия, то единственным способом решения этой проблемы остается изменение запроса.