Параметры конфигурации сервера (SQL Server)

Область применения: SQL Server (все поддерживаемые версии)

Для оптимизации ресурсов SQL Server и управления ими можно изменять параметры конфигурации с помощью SQL Server Management Studio или системной хранимой процедуры sp_configure. Наиболее часто используемые параметры конфигурации сервера доступны в среде SQL Server Management Studio; доступ ко всем параметрам конфигурации можно получить при помощи sp_configure. Взвесьте возможные последствия для системы, прежде чем устанавливать эти параметры. Дополнительные сведения см. в разделе Просмотр или изменение свойств сервера (SQL Server).

Важно!

Расширенные параметры должны изменяться только опытным администратором базы данных или сертифицированным техническим специалистом по SQL Server.

Категории параметров конфигурации

Если влияние изменения конфигурации не очевидно, ее нельзя установить. Убедитесь, что run_value параметра конфигурации был изменен.

Параметры конфигурации могут вступать в силу:

  • немедленно после установки параметра и выполнения инструкции RECONFIGURE (или, в некоторых случаях, RECONFIGURE WITH OVERRIDE). Повторная настройка определенных параметров аннулирует определенные параметры в кэше планов, что приводит к компиляции новых планов. Дополнительные сведения см. в разделе DBCC FREEPROCCACHE (Transact-SQL).

    — или —

  • После выполнения указанных выше действий и перезапуска экземпляра SQL Server.

Представление каталога sys.configurations можно использовать, чтобы определить config_value (столбец value) и run_value (столбец value_in_use), а также понять, требует ли конфигурация параметра перезапуска ядра СУБД (столбец is_dynamic).

Если требуется перезапустить SQL Server, параметры сначала будут отображаться только в столбце value. После перезапуска новое значение отобразится в обоих столбцах, value и value_in_use.

Для некоторых параметров требуется перезапуск сервера прежде, чем новое конфигурационное значение вступит в силу. Если задано новое значение и выполнена процедура sp_configure перед перезапуском сервера, то новое значение появится в столбце value представления каталога sys.configurations, но не в столбце value_in_use. После перезапуска сервера новое значение отобразится в столбце value_in_use.

Примечание

config_value в результирующем наборе sp_configure эквивалентен столбцу value представления каталога sys.configurations, а run_value эквивалентен столбцу value_in_use.

Самонастраивающимися называют те параметры, которые SQL Server самостоятельно изменяет в соответствии с потребностями системы. В большинстве случаев это позволяет избавиться от необходимости устанавливать значения вручную. Например, к таким параметрам относятся max worker threads и user connections.

Следующий запрос можно использовать, чтобы определить, что какие-либо настроенные значения не были установлены:

SELECT *
FROM sys.configurations
WHERE [value] <> [value_in_use];

Если значение представляет изменение параметра конфигурации, но value_in_use не совпадает, то либо команда RECONFIGURE не выполнялась или завершилась сбоем, либо ядро СУБД требуется перезапустить.

Существует два варианта конфигурации, где value и value_in_use могут не совпадать, и такое поведение ожидаемо:

  • max server memory (MB) — настроенное по умолчанию значение 0 будет отображаться как 2147483647 в столбце value_in_use.

  • min server memory (MB) — настроенное по умолчанию значение 0 может отображаться в столбце value_in_use как 8 в 32-разрядных системах или как 16 в 64-разрядных системах. В отдельных случаях, если value_in_use отображается как 0, истинным значением value_in_use является 8 (32-разрядные) или 16 (64-разрядные).

Столбец is_dynamic можно использовать для определения необходимости перезапуска параметра конфигурации. Значение 1 в столбце is_dynamic означает, что при выполнении команды RECONFIGURE новое значение вступит в силу немедленно. В некоторых случаях ядро СУБД может не сразу оценить новое значение, однако это будет сделано в ходе обычного процесса выполнения. Значение 0 в столбце is_dynamic означает, что измененное значение конфигурации не вступит в силу до перезапуска ядра СУБД, даже если выполнена команда RECONFIGURE.

Если используется нединамический параметр конфигурации, невозможно определить, выполнялась ли команда RECONFIGURE для применения изменений конфигурации. Перед перезапуском SQL Server для применения изменений выполните команду RECONFIGURE, чтобы все изменения конфигурации вступили в силу после перезапуска.

Варианты настройки

В нижеследующей таблице приведены все доступные параметры конфигурации, диапазон возможных значений и значения по умолчанию. Параметры конфигурации помечаются буквенными кодовыми обозначениями, как показано ниже:

  • A = расширенные параметры, которые должен изменять только опытный администратор базы данных или сертифицированный специалист по SQL Server. Чтобы увидеть их в списке, для параметра "Отображение дополнительных параметров" нужно задать для show advanced options значение 1.

  • RR = параметры, требующие перезапуска ядра СУБД.

  • RP = параметры, требующие перезапуска ядра PolyBase.

  • SC = Самонастраивающиеся параметры.

Параметр конфигурации Минимальное значение Максимальное значение По умолчанию
access check cache bucket count (A) 0 16384 0
access check cache quota (A) 0 2147483647 0
ad hoc distributed queries (A) 0 1 0
Время ожидания повторных попыток очистки ADR (мин)

Область применения: SQL Server 2019 (15.x) и более поздних версий.
0 32767 15
Коэффициент предварительного выделения ADR

Область применения: SQL Server 2019 (15.x) и более поздних версий.
0 32767 4
affinity I/O mask (A, RR) -2147483648 2147483647 0
affinity mask (A) -2147483648 2147483647 0
affinity64 I/O mask (A, доступно только в 64-разрядной версии SQL Server) -2147483648 2147483647 0
affinity64 mask (A, RR), доступно только в 64-разрядной версии SQL Server -2147483648 2147483647 0
Agent XPs (A) 0 1 0

(Значение изменяется на 1 при запуске агента SQL Server. Значение по умолчанию — 0, если для агента SQL Server задан автоматический запуск во время установки.)
разрешить экспорт polybase

Область применения: SQL Server 2016 (13.x) и более поздних версий.
0 1 0
allow updates (Устаревшие, не используется. Приведет к ошибке во время перенастройки.) 0 1 0
automatic soft-NUMA disabled 0 1 0
Контрольная сумма резервной копии: значение по умолчанию 0 1 0
backup compression default 0 1 — версии до предварительной версии SQL Server 2022 (16.x)

2 — предварительная версия SQL Server 2022 (16.x) и более поздние версии
0
Алгоритм сжатия резервных копий (A)

Область применения: предварительная версия SQL Server 2022 (16.x) и более поздние версии.
0 1 0
blocked process threshold (A) 5 86400 0
c2 audit mode (A, RR) 0 1 0
clr enabled 0 1 0
clr strict security (A)

Область применения: SQL Server 2017 (14.x) и более поздних версий.
0 1 0
column encryption enclave type (A, RR) 0 2 0
common criteria compliance enabled (A, RR) 0 1 0
Проверка подлинности автономной базы данных 0 1 0
cost threshold for parallelism (A) 0 32767 5
cross db ownership chaining 0 1 0
cursor threshold (A) -1 2147483647 -1
Database Mail XPs (A) 0 1 0
default full-text language (A) 0 2147483647 1033
язык по умолчанию 0 9999 0
default trace enabled (A) 0 1 1
disallow results from triggers (A) 0 1 0
Поставщик расширенного управления ключами включен 0 1 0
external scripts enabled (SC) (RR)

Область применения: SQL Server 2016 (13.x) и более поздних версий.
0 1 0
уровень доступа файлового потока 0 2 0
fill factor (A, RR) 0 100 0
ft crawl bandwidth (max)(A) 0 32767 100
ft crawl bandwidth (min)(A) 0 32767 0
ft notify bandwidth (max)(A) 0 32767 100
ft notify bandwidth (min)(A) 0 32767 0
hadoop connectivity (RP)

Область применения: SQL Server 2016 (13.x) и более поздних версий.
0 7 0
in-doubt xact resolution (A) 0 2 0
index create memory (A, SC) 704 2147483647 0
lightweight pooling (A, RR) 0 1 0
locks (A, RR, SC) 5000 2147483647 0
max degree of parallelism (A) 0 32767 0
max full-text crawl range (A) 0 256 4
max server memory (A, SC) 16 2147483647 2147483647
max text repl size 0 2147483647 65536
max worker threads (A) 128 32767

Для 32-разрядной версии SQL Server рекомендуется использовать значение не выше 1024, а для 64-разрядной версии SQL Server — 2048.

Примечание. SQL Server 2014 (12.x) — последняя версия, которая была доступна в 32-разрядной операционной системе.
0

При нулевом значении максимальное число рабочих потоков настраивается автоматически в зависимости от количества логических процессоров по формуле (256 + (<логические процессоры> – 4) * 8) для 32-разрядного SQL Server и (512 + (<логические процессоры> – 4) * 8) для 64-разрядного SQL Server.

Примечание. SQL Server 2014 (12.x) — последняя версия, которая была доступна в 32-разрядной операционной системе.
media retention (A, RR) 0 365 0
min memory per query (A) 512 2147483647 1024
min server memory (A, SC) 0 2147483647 0
вложенные триггеры 0 1 1
network packet size (A) 512 32767 4096
Ole Automation Procedures (A) 0 1 0
open objects (A, RR, устаревший) 0 2147483647 0
optimize for ad hoc workloads (A) 0 1 0
PH_timeout (A) 1 3600 60
polybase enabled (RR)

Область применения: SQL Server 2019 (15.x) и более поздних версий.
0 1 0
Сетевое шифрование polybase 0 1 1
precompute rank (A) 0 1 0
priority boost (A, RR) 0 1 0
query governor cost limit (A) 0 2147483647 0
query wait (A) -1 2147483647 -1
recovery interval (A, SC) 0 32767 0
remote access (RR) 0 1 1
remote admin connections 0 1 0
remote data archive 0 1 0
remote login timeout 0 2147483647 10
remote proc trans 0 1 0
remote query timeout 0 2147483647 600
Replication XPs Option (A) 0 1 0
scan for startup procs (A, RR) 0 1 0
server trigger recursion 0 1 1
set working set size (A, RR, устаревший) 0 1 0
show advanced options 0 1 0
SMO and DMO XPs (A) 0 1 1
suppress recovery model errors (A)

Область применения: Управляемый экземпляр SQL Azure.
0 1 0
tempdb metadata memory-optimized (A)

Область применения: SQL Server 2019 (15.x) и более поздних версий.
0 1 0
transform noise words (A) 0 1 0
two digit year cutoff (A) 1753 9999 2049
user connections (A, RR, SC) 0 32767 0
user options 0 32767 0
xp_cmdshell (A) 0 1 0

См. также раздел