ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)

Область применения:yesSQL Server 2016 (13.x) и более поздних версий YesБаза данных SQL Azure YesУправляемый экземпляр SQL Azure yesAzure 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.
  • Укажите время в минутах, в течение которого операция возобновляемого индекса остается приостановленной, прежде чем она будет автоматически прервана подсистемой Компонент Database Engine.
  • Включение или отключение ожидания блокировок с низким приоритетом для асинхронного обновления статистики.
  • Включает или отключает отправку хэшей реестра в Хранилище BLOB-объектов Azure или конфиденциальный реестр 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 = { 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 }
    | PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
    | LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | 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 | 9000 }  
}

Аргументы

FOR SECONDARY

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

CLEAR PROCEDURE_CACHE [plan_handle]

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

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

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

MAXDOP = {<value> | PRIMARY }

<value>

Задает параметр максимальной степени параллелизма, 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 GovernorMAX_DOP.

PRIMARY

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

LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }

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

Совет

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

PRIMARY

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

PARAMETER_SNIFFING = { ON | OFF | PRIMARY }

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

Совет

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

PRIMARY

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что значение этого параметра для всех баз данных-получателей будет равно значению, заданному для сервера-источника. Если конфигурация сервера-источника для сканирования параметров изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется. 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

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что значение этого параметра для всех баз данных-получателей будет равно значению, заданному для сервера-источника. Если конфигурация для сервера-источника изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется. 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 или выше. Выполнение с чередованием — одна из возможностей адаптивной обработки запросов в База данных 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 или выше. Обратная связь по временно предоставляемому буферу памяти в пакетном режиме — одна из возможностей интеллектуальной обработки запросов, представленная в SQL Server 2017 (14.x);.

Примечание

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

BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }

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

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

Примечание

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

TSQL_SCALAR_UDF_INLINING = { ON | OFF }

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

Позволяет включить или отключить встраивание скалярных определяемых пользователем функций для T-SQL в области базы данных, сохранив уровень совместимости базы данных 150 или выше. Встраивание скалярных определяемых пользователем функций для 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 или выше. Обратная связь по временно предоставляемому буферу памяти в режиме строк — одна из возможностей интеллектуальной обработки запросов, представленная в SQL Server 2017 (14.x); (режим строк поддерживается в SQL Server 2019 (15.x) и База данных SQL Azure).

Примечание

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

MEMORY_GRANT_FEEDBACK_PERCENTILE = { ON | OFF }

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server (начиная с SQL Server 2022 (16.x), предварительная версия)

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

Примечание

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

MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server (начиная с SQL Server 2022 (16.x), предварительная версия)

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

Примечание

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

BATCH_MODE_ON_ROWSTORE = { ON | OFF }

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

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

Примечание

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

DEFERRED_COMPILATION_TV = { ON | OFF }

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

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

Примечание

Для уровня совместимости базы данных 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) предоставляет более эффективные данные производительности запросов по сравнению со стандартными механизмами профилирования. По умолчанию она включена.

VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }

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

Позволяет включить или отключить новое сообщение об ошибке String or binary data would be truncated. В 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.

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

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

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

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

DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 9000 }

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

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

Уровень совместимости Комментарии
AUTO По умолчанию. Подсистема Synapse Analytics автоматически обновляет его значение, которое обозначается в виде 0 в sys.database_scoped_configurations. На текущий момент AUTO сопоставим с функциональными возможностями уровня 20.
10 Применяет для Transact-SQL и обработки запросов поведение, действовавшее до появления поддержки уровня совместимости.
20 Первый уровень совместимости, включающий условное поведение Transact-SQL и обработки запросов. Системная хранимая процедура sp_describe_undeclared_parameters поддерживается на этом уровне.
9000 Уровень совместимости предварительной версии. Предварительные версии функций, управляемые на этом уровне, рассматриваются в документации по конкретным функциям. Этот уровень также включает возможности самого высокого уровня, отличного от значения 9000.

EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }

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

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

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.

OPTIMIZED_PLAN_FORCING = { ON | OFF }

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server (начиная с SQL Server 2022 (16.x), предварительная версия), База данных SQL Azure (предварительная версия) и Управляемый экземпляр SQL Azure (предварительная версия)

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

DOP_FEEDBACK = { ON | OFF }

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server (начиная с SQL Server 2022 (16.x), предварительная версия)

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

PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server (начиная с SQL Server 2022 (16.x), предварительная версия)

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

LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server (начиная с SQL Server 2022 (16.x), предварительная версия)

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

Разрешения

Необходимо разрешение 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) или исправлений оптимизатора запросов; между указанием запроса и параметром конфигурации уровня базы данных используется условие ИЛИ, что означает, что если хотя бы одна из этих сущностей включена, параметры уровня базы данных применяются.

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

Доступные для чтения базы данных-получатели (группы доступности Always On, База данных 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

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

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

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION to [Joe] ;

Б. Задание параметра 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 ;

В. Задание параметра 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 ;

Г. Задание параметра 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 ;

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

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

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

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

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

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

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF ;

З. Задание параметра 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;

И. Задание 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 ;

К. Задание 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 ;

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

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

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

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

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

Область применения: База данных 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'

Этот пример позволяет отправлять хэши реестра в конфиденциальный реестр Azure.

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = 'https://myledger.confidential-ledger.azure.com'

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

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = OFF

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

Ресурсы MAXDOP

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

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

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

Ресурсы по ELEVATE_ONLINE

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

Ресурсы по ELEVATE_RESUMABLE

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

Дальнейшие действия