Поделиться через


ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)

Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

Эта команда включает несколько параметров конфигурации базы данных на уровне отдельной базы данных.

Внимание

Различные параметры DATABASE SCOPED CONFIGURATION поддерживаются в разных версиях SQL Server или службах Azure. На этой странице описаны все DATABASE SCOPED CONFIGURATION параметры. Версии, в которых указаны применимые версии. Убедитесь, что вы используете синтаксис, доступный в используемой версии службы.

Следующие параметры поддерживаются в Базе данных SQL Azure, Управляемом экземпляре SQL Azure и SQL Server, как указано в строке Область применения для каждого параметра в разделе Аргументы.

  • очистить кэш процедур;
  • Задать для параметра MAXDOP рекомендованное значение (1, 2, ...) для базы данных-источника в зависимости от того, что лучше всего подходит для конкретной рабочей нагрузки, и указать другое значение для используемых запросами отчетов баз данных-получателей. Рекомендации по выбору MAXDOP см. в разделе Настройка параметра максимальной степени параллелизма в конфигурации сервера.
  • настроить модель оценки кратности оптимизатора запросов независимо от уровня совместимости базы данных;
  • включить или выключить перехват параметров на уровне базы данных;
  • включить или выключить исправления оптимизации запросов на уровне базы данных.
  • включить или выключить кэширование идентификации на уровне базы данных;
  • включить или выключить заглушку компилированного плана для сохранения в кэше при первом компилировании пакета.
  • включить или выключить сбор статистики выполнения для скомпилированных в собственном коде модулей Transact-SQL;
  • включить или отключить параметры подключения по умолчанию для инструкций DDL, поддерживающих синтаксис ONLINE =;
  • включить или отключить параметры возобновления по умолчанию для инструкций DDL, поддерживающих синтаксис RESUMABLE =;
  • Включение или отключение функции интеллектуальной обработки запросов.
  • Включение или отключение принудительного применения плана с ускорением.
  • Включите или отключите функцию автоподбора глобальных временных таблиц.
  • Включение или отключение упрощенной инфраструктуры профилирования запросов.
  • включить или отключить новое сообщение об ошибке String or binary data would be truncated.
  • Включает или отключает запись последнего действительного плана выполнения в sys.dm_exec_query_plan_stats.
  • Укажите количество минут приостановки приостановленной операции возобновления индекса, прежде чем автоматически прервано ядро СУБД.
  • Включение или отключение ожидания блокировок с низким приоритетом для асинхронного обновления статистики.
  • Включение или отключение дайджестов реестра для отправки в Хранилище BLOB-объектов Azure.

Этот параметр доступен только в Azure Synapse Analytics.

  • Задание уровня совместимости для пользовательской базы данных

Соглашения о синтаксисе Transact-SQL

Синтаксис

-- Syntax for SQL Server, Azure SQL Database and Azure SQL Managed Instance

ALTER DATABASE SCOPED CONFIGURATION
{
    { [ FOR SECONDARY] SET <set_options>}
}
| CLEAR PROCEDURE_CACHE [plan_handle]
| SET < set_options >
[;]

< set_options > ::=
{
    MAXDOP = { <value> | PRIMARY}
    | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY}
    | PARAMETER_SNIFFING = { ON | OFF | PRIMARY}
    | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY}
    | IDENTITY_CACHE = { ON | OFF }
    | INTERLEAVED_EXECUTION_TVF = { ON | OFF }
    | BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
    | TSQL_SCALAR_UDF_INLINING = { ON | OFF }
    | ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
    | XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
    | XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
    | ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }
    | MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
    | BATCH_MODE_ON_ROWSTORE = { ON | OFF }
    | DEFERRED_COMPILATION_TV = { ON | OFF }
    | ACCELERATED_PLAN_FORCING = { ON | OFF }
    | GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
    | LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
    | VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
    | LAST_QUERY_PLAN_STATS = { ON | OFF }
    | PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = <time>
    | ISOLATE_SECURITY_POLICY_CARDINALITY  = { ON | OFF }
    | EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }
    | ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
    | OPTIMIZED_PLAN_FORCING = { ON | OFF }
    | DOP_FEEDBACK = { ON | OFF }
    | CE_FEEDBACK = { ON | OFF }
    | PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
    | LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }
    | OPTIMIZED_SP_EXECUTESQL = { ON | OFF }
}

Внимание

Начиная с SQL Server 2019 (15.x), в База данных SQL Azure и Управляемый экземпляр SQL Azure некоторые имена параметров изменились:

  • DISABLE_INTERLEAVED_EXECUTION_TVF изменено на INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK изменено на BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS изменено на BATCH_MODE_ADAPTIVE_JOINS
-- Syntax for Azure Synapse Analytics

ALTER DATABASE SCOPED CONFIGURATION
{
    SET <set_options>
}
[;]

< set_options > ::=
{
    DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
}

Аргументы

FOR SECONDARY

Задает параметры для баз данных-получателей (все базы данных-получатели должны иметь одинаковые значения).

CLEAR PROCEDURE_CACHE [plan_handle]

Очистка кэша процедур (планов) для базы данных. Может выполняться для баз данных-источников и баз данных-получателей.

Укажите дескриптор плана запроса, чтобы удалить отдельный план запроса из кэша планов.

Область применения: определение дескриптора плана запроса доступно при работе с SQL Server 2019 (15.x), в Базе данных SQL Azure и Управляемом экземпляре SQL Azure.

MAXDOP = {<value> | PRIMARY }

<значение>

Задает параметр максимальной степени параллелизма, max degree of parallelism (MAXDOP), по умолчанию для использования в инструкциях. 0 — это значение по умолчанию, указывающее, что вместо этого будет использоваться конфигурация сервера. MaxDOP в области базы данных переопределяет (если не задано значение 0) максимальной степени параллелизма на уровне сервера.sp_configure Указания запросов все равно могут переопределять MAXDOP в области базы данных для настройки конкретных запросов, требующих особых параметров. Все эти параметры ограничены параметром MAXDOP, заданным для группы рабочей нагрузки.

Параметр MAXDOP можно использовать для ограничения числа процессоров, применяемых при параллельном выполнении планов. SQL Server учитывает планы параллельного выполнения для запросов, операций DDL с индексами, параллельной вставки, изменения столбца в режиме "в сети", параллельного сбора статистики и заполнения статических курсоров и курсоров, управляемых набором ключей.

Примечание.

Ограничение параметра max degree of parallelism (MAXDOP) задается для каждой задачи. Оно не задается для каждого запроса. Это означает, что во время параллельного выполнения один запрос может порождать множество задач, назначаемых планировщику. Дополнительные сведения см. в статье Руководство по архитектуре потоков и задач.

Сведения о настройке этого параметра на уровне экземпляра см. в разделе Настройка параметра конфигурации сервера max degree of parallelism.

Примечание.

В База данных SQL Azure конфигурация с областью базы данных MAXDOP для новых баз данных одного и эластичного пула по умолчанию имеет значение 8. MAXDOP можно настроить для каждой базы данных, как описано в текущей статье. Рекомендации по оптимальной настройке MAXDOP см. в разделе Дополнительные ресурсы.

Совет

Для выполнения этого на уровне запросов используйте указание запроса MAXDOP.
На уровне сервера используйте параметр конфигурации сервера максимальной степени параллелизма (MAXDOP).
На уровне рабочих нагрузок используйте параметр конфигурации группы рабочей нагрузки Resource Governor MAX_DOP.

ОСНОВНОЙ

Может задаваться только для баз данных-получателей, пока база данных находится на сервере-источнике, и указывает, что будет использоваться конфигурация, настроенная для сервера-источника. Если конфигурация для сервера-источника изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется. PRIMARY — это параметр по умолчанию для баз данных-получателей.

LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }

Позволяет указывать модель оценки кратности оптимизатора запросов в SQL Server 2012 и более ранних версиях независимо от уровня совместимости базы данных. Значение по умолчанию OFF, задающее модель оценки кратности оптимизатора запросов с учетом уровня совместимости баз данных. Присвоение параметру LEGACY_CARDINALITY_ESTIMATION значения ON эквивалентно включению флага трассировки 9481.

Совет

Для выполнения этого на уровне запросов добавьте указание запроса QUERYTRACEON. Начиная с SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) для этого на уровне запроса добавьте указание запроса USE HINT вместо использования флага трассировки.

ОСНОВНОЙ

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что в качестве настройки модели оценки кратности оптимизатора запросов для всех баз данных-получателей будет использоваться значение, заданное для сервера-источника. При изменении конфигурации модели оценки кратности оптимизатора запросов на сервере-источнике значение в базах данных-получателях изменится соответственно. PRIMARY — это параметр по умолчанию для баз данных-получателей.

PARAMETER_SNIFFING = { ON | OFF | PRIMARY }

Включает или отключает сканирование параметров. Значение по умолчанию — ON. Присвоение параметру PARAMETER_SNIFFING значения OFF эквивалентно включению флага трассировки 4136.

Совет

Для выполнения этой задачи на уровне запроса добавьте указание запроса OPTIMIZE FOR UNKNOWN. Начиная с SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) для этого на уровне запроса, также доступен подсказка запроса USE HINT.

ОСНОВНОЙ

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что значение этого параметра для всех баз данных-получателей будет равно значению, заданному для сервера-источника. Если конфигурация сервера-источника для сканирования параметров изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется. PRIMARY — это параметр по умолчанию для баз данных-получателей.

QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }

Включает или отключает исправления оптимизации запросов независимо от уровня совместимости базы данных. Значение по умолчанию — OFF, которое отключает исправления оптимизации запросов, выпущенные после появления наивысшего доступного уровня совместимости для определенной версии (после RTM). Присвоение этому параметру значения ON эквивалентно включению флага трассировки 4199.

Область применения: SQL Server (начиная с SQL Server 2016 (13.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Совет

Для выполнения этого на уровне запросов добавьте указание запроса QUERYTRACEON. Начиная с SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) для этого на уровне запроса добавьте указание запроса USE HINT вместо использования флага трассировки.

ОСНОВНОЙ

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что значение этого параметра для всех баз данных-получателей будет равно значению, заданному для сервера-источника. Если конфигурация для сервера-источника изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется. PRIMARY — это параметр по умолчанию для баз данных-получателей.

IDENTITY_CACHE = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2017 (14.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Включает и выключает кэширование идентификации на уровне базы данных. Значение по умолчанию — ON. Кэширование идентификаторов используется для повышения производительности инструкции INSERT в таблицах со столбцами идентификаторов. Во избежание пропусков значений столбца идентификаторов в случаях, когда сервер неожиданно перезапускается или выполняет обработку отказа на сервер-получатель, отключите параметр IDENTITY_CACHE. Этот параметр похож на существующий флаг трассировки 272 с той разницей, что его можно задать на уровне базы данных, а не только на уровне сервера.

Примечание.

Этот параметр можно задать только для сервера-источника. Дополнительные сведения см. в статье Столбцы идентификаторов.

INTERLEAVED_EXECUTION_TVF = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включить или отключить выполнение с чередованием для функций с табличным значением и множеством инструкций в области базы данных или инструкции, сохранив уровень совместимости базы данных 140 или выше. Значение по умолчанию — ON. Межуровневое выполнение — это функция, которая входит в состав адаптивной обработки запросов в База данных SQL Azure. Дополнительные сведения см. в статье Интеллектуальная обработка запросов.

Примечание.

Для уровня совместимости базы данных 130 или более низкого эта конфигурация области баз данных не оказывает влияния.

Только в SQL Server 2017 (14.x) параметр INTERLEAVED_EXECUTION_TVF имеет старое имя DISABLE_INTERLEAVED_EXECUTION_TVF.

BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включить или отключить обратную связь по временно предоставляемому буферу памяти в пакетном режиме в области базы данных, сохранив уровень совместимости базы данных 140 или выше. Значение по умолчанию — ON. Отзыв о предоставлении памяти в пакетном режиме, представленный в SQL Server 2017 (14.x), является частью интеллектуального набора функций обработки запросов. Дополнительные сведения см. в отзыве о предоставлении памяти.

Примечание.

Для уровня совместимости базы данных 130 или более низкого эта конфигурация области баз данных не оказывает влияния.

BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF}

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включить или отключить адаптивные соединения в пакетном режиме в области базы данных, сохранив уровень совместимости базы данных 140 или выше. Значение по умолчанию — ON. Адаптивные соединения в пакетном режиме — это компонент интеллектуальной обработки запросов, представленный в SQL Server 2017 (14.x).

Примечание.

Для уровня совместимости базы данных 130 или более низкого эта конфигурация области баз данных не оказывает влияния.

TSQL_SCALAR_UDF_INLINING = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)) и База данных SQL Azure (функция находится в предварительной версии)

Позволяет включить или отключить встраивание скалярных определяемых пользователем функций для T-SQL в области базы данных, сохранив уровень совместимости базы данных 150 или выше. Значение по умолчанию — ON. Встраивание скалярных определяемых пользователем функций для T-SQL — одна из возможностей семейства функций интеллектуальной обработки запросов.

Примечание.

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.

ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет выбирать параметры, предписывающие ядру автоматически переводить поддерживаемые операции в режим "в сети". Значение по умолчанию — OFF. Оно означает, что операции не будут переводиться в режим "в сети", если это явно не указано в инструкции. В представлении sys.database_scoped_configurations указывается текущее значение ELEVATE_ONLINE. Эти параметры применяются только к операциям, которые поддерживают режим "в сети".

FAIL_UNSUPPORTED

Это значение переводит все поддерживаемые операции DDL в режим "в сети". Операции, не поддерживающие выполнение в сети, завершаются ошибкой и вызывают ошибку.

Примечание.

Добавление столбца в таблицу — это преимущественно операция в подключенном режиме. В некоторых сценариях, например при добавлении столбца, не допускающего значения NULL, столбец нельзя добавить в подключенном режиме. В таких случаях, если задать FAIL_UNSUPPORTED, операция завершится сбоем.

WHEN_SUPPORTED

Это значение изменяет режим выполнения операций, поддерживающих режим "в сети". Операции, не поддерживающие режим "в сети", будут выполняться в режиме "вне сети".

Примечание.

Переопределить значение по умолчанию можно, отправив инструкцию с параметром ONLINE.

ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет выбирать параметры, предписывающие ядру автоматически переводить поддерживаемые операции в возобновляемый режим. Значение по умолчанию — OFF. Оно означает, что операции не будут переводиться в возобновляемый режим, если это явно не указано в инструкции. В представлении sys.database_scoped_configurations указывается текущее значение ELEVATE_RESUMABLE. Эти параметры применяются только к операциям, которые поддерживают возобновление.

FAIL_UNSUPPORTED

Это значение переводит все поддерживаемые операции DDL в возобновляемый режим. Операции, которые не поддерживают возобновляемое выполнение, завершатся сбоем и выдадут ошибку.

WHEN_SUPPORTED

Это значение изменяет режим выполнения операций, поддерживающих возобновляемое выполнение. Операции, которые не поддерживают возобновление, выполняются неоправдательно.

Примечание.

Переопределить значение по умолчанию можно, отправив инструкцию с параметром RESUMABLE.

OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Включает или отключает заглушку скомпилированного плана для сохранения в кэше при первой компиляции пакета. Значение по умолчанию — OFF. После включения конфигурации уровня базы данных OPTIMIZE_FOR_AD_HOC_WORKLOADS для базы данных заглушка скомпилированного плана будет сохранена в кэше при первой компиляции пакета. Заглушки плана расходуют меньше памяти по сравнению с полным скомпилированным планом. Если пакет компилируется или выполняется повторно, заглушка скомпилированного плана будет удалена и заменена полным скомпилированным планом.

XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }

Область применения: База данных SQL Azure и Управляемый экземпляр SQL Azure

Включает или отключает сбор статистики выполнения на уровне модуля для скомпилированных в собственном коде модулей T-SQL в текущей базе данных. Значение по умолчанию — OFF. Статистика выполнения отражается в sys.dm_exec_procedure_stats.

Статистика выполнения на уровне модуля для скомпилированных в собственном коде модулей T-SQL собирается либо при значении ON этого параметра, либо если сбор статистики включен с помощью sp_xtp_control_proc_exec_stats.

XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }

Область применения: База данных SQL Azure и Управляемый экземпляр SQL Azure

Включает или отключает сбор статистики выполнения на уровне инструкций для скомпилированных в собственном коде модулей T-SQL в текущей базе данных. Значение по умолчанию — OFF. Статистика выполнения отражается в sys.dm_exec_query_stats и в хранилище запросов.

Статистика выполнения на уровне инструкций для скомпилированных в собственном коде модулей T-SQL собирается либо при значении ON этого параметра, либо если сбор статистики включен с помощью sp_xtp_control_query_exec_stats.

Дополнительные сведения о мониторинге производительности встроенных скомпилированных модулей Transact-SQL см. в разделе "Мониторинг производительности скомпилированных хранимых процедур в собственном коде".

ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включить или отключить обратную связь по временно предоставляемому буферу памяти в построчном режиме в области базы данных, сохранив уровень совместимости базы данных 150 или выше. Значение по умолчанию — ON. Возможность предоставления отзывов о режиме строки, которая входит в состав интеллектуальной обработки запросов, появилась в SQL Server 2017 (14.x). Режим строки поддерживается в SQL Server 2019 (15.x) и База данных SQL Azure. Дополнительные сведения об отзыве о предоставлении памяти см. в статье "Предоставление памяти".

Примечание.

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.

MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure

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

Примечание.

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.

MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

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

Примечание.

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.

BATCH_MODE_ON_ROWSTORE = { ON | OFF}

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включить или отключить пакетный режим для данных rowstore в области базы данных, сохранив уровень совместимости базы данных 150 или выше. Значение по умолчанию — ON. Пакетный режим для данных rowstore — одна из возможностей семейства функций адаптивной обработки запросов.

Примечание.

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.

DEFERRED_COMPILATION_TV = { ON | OFF}

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включить или отключить отложенную компиляцию табличных переменных в области базы данных, сохранив уровень совместимости базы данных 150 или выше. Значение по умолчанию — ON. Отложенная компиляция табличных переменных — одна из возможностей семейства функций адаптивной обработки запросов.

Примечание.

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.

ACCELERATED_PLAN_FORCING = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Включает оптимизированный механизм для принудительного применения плана запроса, допустимый для всех форм применения планов, таких как Принудительно использовать план хранилища запросов, Автоматическая настройка или подсказка запроса USE PLAN. Значение по умолчанию — ON.

Примечание.

Не рекомендуется отключать ускоренное применение планов.

GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }

Область применения: База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет задать функцию автоподбора для глобальных временных таблиц. Значение по умолчанию — ON, что означает, что глобальные временные таблицы автоматически удаляются, если не используется ни в одном сеансе. Если задано значение OFF, глобальные временные таблицы должны быть явно удалены с помощью инструкции DROP TABLE или будут автоматически удалены при перезапуске сервера.

  • С помощью База данных SQL Azure отдельных баз данных и эластичных пулов этот параметр можно задать в отдельных пользовательских базах данных сервера База данных SQL.
  • В SQL Server и Управляемый экземпляр SQL Azure этот параметр заданtempdb, а параметр отдельных пользовательских баз данных не действует.

LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Делает возможным включение или отключение упрощенной инфраструктуры профилирования запросов. Упрощенная инфраструктура профилирования запросов (LWP) предоставляет более эффективные данные производительности запросов по сравнению со стандартными механизмами профилирования. По умолчанию она включена. Значение по умолчанию — ON.

VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включить или отключить новое сообщение об ошибке String or binary data would be truncated. Значение по умолчанию — ON. В SQL Server 2019 (15.x) представлено новое, более конкретное сообщение об ошибке (2628) для этого сценария:

String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.

Если задано значение ON при уровне совместимости базы данных 150, для ошибок усечения выдается новое сообщение об ошибке 2628, которое содержит больше сведений о проблеме и упрощает процесс устранения неполадок.

Если задано значение OFF при уровне совместимости базы данных 150, для ошибок усечения выдается прежнее сообщение об ошибке 8152.

Для уровня совместимости базы данных 140 или более низкого сообщение об ошибке 2628 активируется явным образом и требует включения флага трассировки 460, поэтому эта конфигурация области баз данных не оказывает влияния.

LAST_QUERY_PLAN_STATS = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет включать и отключать сбор статистики последнего плана запроса (эквивалент фактического плана выполнения) в sys.dm_exec_query_plan_stats. Значение по умолчанию — OFF.

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Параметр PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES определяет время (в минутах), в течение которого возобновляемый индекс приостанавливается перед автоматическим прерыванием обработчиком.

  • Значение по умолчанию — один день (1440 минут)
  • Минимальная длительность — 1 минута
  • Максимальная длительность — 71 582 минуты
  • Если задано значение 0, приостановленная операция никогда не будет автоматически прерываться

Текущее значение этого параметра отображается в sys.database_scoped_configurations.

ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет контролировать, влияет ли предикат безопасности на уровне строк (RLS) на кратность плана выполнения пользовательского запроса в целом. Значение по умолчанию — OFF. Если ISOLATE_SECURITY_POLICY_CARDINALITY имеет значение ON, то предикат RLS не влияет на кратность плана выполнения. Например, рассмотрим таблицу, содержащую 1 000 000 строк и предикат RLS, который ограничивает результат 10 строками для конкретного пользователя, выполняющего запрос. Если этот параметр в области базы данных имеет значение OFF, то оценка количества элементов этого предиката будет равна 10. Если эта конфигурация в области базы данных включена, оптимизация запросов оценивает 1 миллион строк. Рекомендуется использовать значение по умолчанию для большинства рабочих нагрузок.

DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }

Область применения: только Azure Synapse Analytics

Обеспечивает для обработки запросов и Transact-SQL совместимость с указанной версией ядра СУБД. После установки при выполнении запроса в этой базе данных выполняются только совместимые функции. На каждом уровне совместимости поддерживаются различные улучшения обработки запросов. Каждый уровень поглощает функциональность предыдущего уровня. При первом создании базы данных по умолчанию устанавливается уровень совместимости AUTO, и это — рекомендуемый параметр. Уровень совместимости сохраняется даже после приостановки и возобновления работы базы данных, операций резервного копирования и восстановления. Значение по умолчанию — AUTO.

Уровень совместимости Комментарии
AUTO По умолчанию. Подсистема Synapse Analytics автоматически обновляет его значение, которое обозначается в виде 0 в sys.database_scoped_configurations. ФУНКЦИЯ AUTO в настоящее время сопоставляется с функциональностью уровня совместимости 30 .
10 Выполняет поведение обработчика запросов и Transact-SQL до внедрения поддержки уровня совместимости.
20 Первый уровень совместимости, включающий в себя поведение подсистемы запросов Transact-SQL и transact-SQL. Системная хранимая процедура sp_describe_undeclared_parameters поддерживается на этом уровне.
30 Включает новые функции обработчика запросов.
40 Включает новые функции обработчика запросов.
50 Распределение с несколькими столбцами поддерживается на этом уровне. Дополнительные сведения см. в разделе CREATE TABLE, CREATE TABLE AS SELECT and CREATE MATERIALIZED VIEW.
9000 Уровень совместимости предварительной версии. Предварительные версии функций, управляемые на этом уровне, рассматриваются в документации по конкретным функциям. Этот уровень также включает возможности самого высокого уровня, отличного от значения 9000.

EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }

Область применения: База данных SQL Azure и Управляемый экземпляр SQL Azure

Позволяет контролировать, отображается ли статистика выполнения для скалярных определяемых пользователем функций (UDF) в системном представлении sys.dm_exec_function_stats. Для некоторых интенсивных рабочих нагрузок, которые являются скалярными UDF-heavy, сбор статистики выполнения функций может привести к заметным затратам на производительность. Это можно избежать, задав для EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS конфигурации уровня базы данных значение OFF. Значение по умолчанию — ON.

ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Если включено асинхронное обновление статистики, включение этой конфигурации приводит к тому, что фоновый запрос обновляет статистику для ожидания Sch-M блокировки очереди с низким приоритетом, чтобы избежать блокировки других сеансов в сценариях высокой параллелизма. Дополнительные сведения см. в разделе AUTO_UPDATE_STATISTICS_ASYNC. Значение по умолчанию — OFF.

OPTIMIZED_PLAN_FORCING = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure

Принудительное выполнение оптимизированного плана сокращает затраты на компиляцию при повторном выполнении принудительных запросов. Значение по умолчанию — ON. После создания плана выполнения запроса этапы компиляции сохраняются для повторного использования в виде сценария воспроизведения оптимизации. Сценарий воспроизведения оптимизации хранится как часть сжатого XML-файла Showplan в хранилище запросов в скрытом атрибуте OptimizationReplay. Дополнительные сведения о принудительном использовании оптимизированного плана с помощью хранилища запросов.

DOP_FEEDBACK = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure

Определяет неэффективность параллелизма для повторяющихся запросов на основе затраченного времени и ожидания. Если использование параллелизма считается неэффективным, обратная связь DOP снижает DOP от настроенного ранее значения для следующего выполнения запроса и проверяет, помогло ли это. Требуется хранилище запросов включен и в режиме READ_WRITE. Дополнительные сведения см . в отзывах о степени параллелизма (DOP). Значение по умолчанию — OFF.

CE_FEEDBACK = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Обратная связь CE устраняет распознанные проблемы регрессии, возникающие из-за неправильных предположений модели CE при использовании стандартной CE (CE120 или более поздней версии), и может выборочно использовать различные предположения модели. Требуется хранилище запросов включен и в режиме READ_WRITE. Дополнительные сведения см. в разделе оценки кратности (CE). Значение по умолчанию — ON в уровне совместимости базы данных 160 и выше.

PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Оптимизация плана конфиденциальности параметров (PSP) устраняет сценарий, в котором один кэшированный план для параметризованного запроса не является оптимальным для всех возможных входящих значений параметров. Это относится к распределению неуниженных данных. Значение по умолчанию — ON, начиная с уровня совместимости базы данных 160. Дополнительные сведения см. в статье Оптимизация плана конфиденциальности параметров.

LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x))

Включает или отключает отправку дайджестов реестра в Хранилище BLOB-объектов Azure. Чтобы включить отправку дайджестов реестра, укажите конечную точку учетной записи хранения BLOB-объектов Azure. Чтобы отключить отправку хэшей реестра, задайте для параметра значение OFF. Значение по умолчанию — OFF.

FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON | OFF }

Область применения: SQL Server (начиная с SQL Server 2022 (16.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

Инициирует создание SQL Server фрагмента Showplan XML с параметром ParameterRuntimeValue при использовании инфраструктуры профилирования статистики выполнения упрощенного запроса или при выполнении динамического административного представления sys.dm_exec_query_statistics_xml при устранении неполадок при выполнении продолжительных запросов.

Внимание

Параметр FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION конфигурации с областью действия базы данных не должен быть включен непрерывно в рабочей среде, но только в целях устранения неполадок с ограниченным временем. Использование этого параметра конфигурации базы данных приведет к дополнительным и, возможно, значительным затратам на ЦП и память, так как мы создадим фрагмент Showplan XML с сведениями о параметрах среды выполнения, независимо sys.dm_exec_query_statistics_xml от того, включена ли инфраструктура динамического административного представления или инфраструктуры профиля статистики выполнения упрощенных запросов.

OPTIMIZED_SP_EXECUTESQL

Область применения: База данных SQL Azure

Включает или отключает поведение сериализации компиляции sp_executesql при компиляции пакета. Значение по умолчанию — OFF. Позволяет пакетам, используюющим sp_executesql сериализовать процесс компиляции, очень эффективно при уменьшении влияния штормов компиляции при наличии частых и одновременных компиляций запросов adhoc, использующих системную хранимую процедуру sp_executesql. Первое выполнение sp_executesql компилирует и вставляет скомпилированный план в кэш планов. Другие сеансы прерывают ожидание блокировки компиляции и повторно используют план после того, как он станет доступным. Это позволяет sp_executesql вести себя как объекты, такие как хранимые процедуры и триггеры с точки зрения компиляции.

Разрешения

Необходимо разрешение ALTER ANY DATABASE SCOPED CONFIGURATION для базы данных. Это разрешение может быть предоставлено пользователем, имеющим разрешение CONTROL для базы данных.

Замечания

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

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

Для трех частей запросов имен параметры текущего подключения к базе данных для запроса учитываются, кроме модулей SQL (таких как процедуры, функции и триггеры), которые компилируются в другом контексте базы данных и поэтому используют параметры базы данных, в которой они находятся. Аналогичным образом при асинхронном обновлении статистики параметр ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY базы данных, в которой учитывается статистика.

Событие ALTER_DATABASE_SCOPED_CONFIGURATION добавляется дочерним элементом в группу триггеров ALTER_DATABASE_EVENTS в качестве события DDL, с помощью которого можно инициировать триггер DDL.

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

Начиная с SQL Server 2019 (15.x), в База данных SQL Azure и Управляемый экземпляр SQL Azure некоторые имена параметров изменились:

  • DISABLE_INTERLEAVED_EXECUTION_TVF изменено на INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK изменено на BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS изменено на BATCH_MODE_ADAPTIVE_JOINS

Ограничения

MAXDOP

Детализированные параметры могут переопределять глобальные, а регулятор ресурсов может ограничивать все остальные параметры MAXDOP. Логика параметра MAXDOP выглядит следующим образом:

  • Указание запроса переопределяет процедуру sp_configure и параметр уровня базы данных. Если для группы рабочей нагрузки задана группа ресурсов MAXDOP:

    • Если указание запроса имеет нулевое значение (0), оно переопределяется параметром Resource Governor.

    • Если указание запроса имеет значение, отличное от нулевого (0), оно ограничивается параметром Resource Governor.

  • Параметр уровня БД (если он отличен от нуля) переопределяет параметр процедуры sp_configure, кроме случаев, когда имеется указание запроса и оно ограничено параметром Resource Governor.

  • Параметр процедуры sp_configure переопределяется параметром Resource Governor.

QUERY_OPTIMIZER_HOTFIXES

Если QUERYTRACEON указание используется для включения оптимизатора запросов по умолчанию SQL Server 7.0 до ВЕРСИИ SQL Server 2012 (11.x) или исправлений оптимизатора запросов, это будет условие OR между указанием запроса и параметром конфигурации с областью базы данных, то есть если это включено, применяются конфигурации с областью базы данных.

Аварийное восстановление посредством георепликации

Доступные для чтения базы данных-получатели (группы доступности AlwaysOn, База данных SQL Azure и Управляемый экземпляр SQL Azure геореплицированные базы данных) используют дополнительное значение, проверяя состояние базы данных. Несмотря на то что при отработке отказа не происходит компиляция и технически на новом сервере-источнике существуют запросы, использующие параметры базы данных-получателя, суть в том, что параметр между источником и получателем меняется только в том случае, если рабочая нагрузка различается. Следовательно, кэшированные запросы используют оптимальные параметры, а новые запросы выбирают подходящие для них новые параметры.

DacFx

Так как ALTER DATABASE SCOPED CONFIGURATION это новая функция в База данных SQL Azure, Управляемый экземпляр SQL Azure и SQL Server (начиная с SQL Server 2016 (13.x)), влияющие на схему базы данных, экспорт схемы (с данными или без нее) не могут быть импортированы в более раннюю версию SQL Server, например SQL Server 2012 (11.x) или SQL Server 2014 (12.x). Например, экспорт в DACPAC или BACPAC из базы данных База данных SQL или SQL Server 2016 (13.x), которая использовала эту новую функцию, не сможет импортироваться на сервер нижнего уровня.

ELEVATE_ONLINE

Этот параметр применяется только к инструкциям DDL, поддерживающим синтаксис WITH (ONLINE = <syntax>). Не затрагивает индексы XML.

ELEVATE_RESUMABLE

Этот параметр применяется только к инструкциям DDL, поддерживающим синтаксис WITH (RESUMABLE = <syntax>). Не затрагивает индексы XML.

Метаданные

Системное представление sys.database_scoped_configurations (Transact-SQL) предоставляет информацию о конфигурациях в области базы данных. Параметры конфигурации с областью базы данных отображаются только при sys.database_scoped_configurations переопределении параметров по умолчанию на уровне сервера. Системное представление sys.configurations (Transact-SQL) отображает только параметры для всего сервера.

Примеры

Эти примеры демонстрируют использование инструкции ALTER DATABASE SCOPED CONFIGURATION

А. Предоставление разрешений

В этом примере пользователю Joe предоставляется разрешение, необходимое для выполнения инструкции ALTER DATABASE SCOPED CONFIGURATION.

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION to [Joe] ;

B. Задание параметра MAXDOP

В этом примере задается MAXDOP = 1 для базы данных-источника и MAXDOP = 4 для базы данных-получателя в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1 ;
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = 4 ;

В этом примере MAXDOP для базы данных-получателя задается равным этому параметру для базы данных-источника в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY ;

C. Задание параметра LEGACY_CARDINALITY_ESTIMATION

В этом примере для параметра LEGACY_CARDINALITY_ESTIMATION задается значение ON для базы данных-получателя в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = ON ;

В этом примере параметр LEGACY_CARDINALITY_ESTIMATION для базы данных-получателя задается равным параметру для базы данных-источника в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY ;

D. Задание параметра PARAMETER_SNIFFING

В этом примере параметру PARAMETER_SNIFFING присваивается значение OFF для базы данных-источника в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = OFF ;

В этом примере параметру PARAMETER_SNIFFING присваивается значение OFF для базы данных-получателя в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = OFF ;

В этом примере параметр PARAMETER_SNIFFING для базы данных-получателя задается равным параметру для базы данных-источника в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY ;

Е. Задание параметра QUERY_OPTIMIZER_HOTFIXES

Задайте для параметра QUERY_OPTIMIZER_HOTFIXES значение ON для базы данных-источника в сценарии георепликации.

ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = ON ;

F. Очистка кэша процедур

В этом примере очищается кэш процедур (возможно только для базы данных-источника).

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

G. Задание параметра IDENTITY_CACHE

Область применения: SQL Server (начиная с SQL Server 2017 (14.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

В этом примере отключается кэш идентификаторов.

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF ;

H. Задание параметра OPTIMIZE_FOR_AD_HOC_WORKLOADS

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

В этом примере включается заглушка скомпилированного плана для сохранения в кэше при первой компиляции пакета.

ALTER DATABASE SCOPED CONFIGURATION SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

I. Задание ELEVATE_ONLINE

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

В этом примере параметру ELEVATE_ONLINE присваивается значение FAIL_UNSUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_ONLINE = FAIL_UNSUPPORTED ;

J. Задание ELEVATE_RESUMABLE

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

В этом примере параметру ELEVEATE_RESUMABLE присваивается значение WHEN_SUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_RESUMABLE = WHEN_SUPPORTED ;

K. Очистка плана запроса из кэша планов

Область применения: SQL Server (начиная с SQL Server 2019 (15.x)), База данных SQL Azure и Управляемый экземпляр SQL Azure

В этом примере конкретный план удаляется из кэша процедур

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

L. Задать длительность паузы

Область применения: База данных SQL Azure и Управляемый экземпляр SQL Azure

В этом примере задается длительность паузы возобновляемого индекса 60 минут.

ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60

M. Включение и отключение отправки хэшей реестра

Область применения: SQL Server (начиная с SQL Server 2022 (16.x))

Этот пример позволяет отправлять хэши реестра в учетную запись хранения Azure.

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = 'https://mystorage.blob.core.windows.net'

В этом примере отключается отправка хэшей реестра.

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = OFF

Дополнительные ресурсы

Ресурсы MAXDOP

Ресурсы по параметру LEGACY_CARDINALITY_ESTIMATION

Ресурсы по параметру PARAMETER_SNIFFING

Ресурсы по параметру QUERY_OPTIMIZER_HOTFIXES

Ресурсы по ELEVATE_ONLINE

Рекомендации по операциям с индексами в оперативном режиме

Ресурсы по ELEVATE_RESUMABLE

Рекомендации по операциям с индексами в оперативном режиме