ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Эта инструкция включает несколько параметров конфигурации базы данных на уровне отдельной базы данных.This statement enables several database configuration settings at the individual database level. Эта инструкция доступна в База данных SQL AzureAzure SQL Database и SQL ServerSQL Server, начиная с версии SQL Server 2016 (13.x)SQL Server 2016 (13.x).This statement is available in База данных SQL AzureAzure SQL Database and in SQL ServerSQL Server beginning with SQL Server 2016 (13.x)SQL Server 2016 (13.x). Речь идет о следующих параметрах:Those settings are:

  • очистить кэш процедур;Clear procedure cache.
  • задать для параметра MAXDOP произвольное значение (1, 2,...) для базы данных-источника в зависимости от того, что лучше всего подходит для конкретной базы данных, и указать другое значение (например, 0) для всех используемых баз данных-получателей (например, для запросов отчетов);Set the MAXDOP parameter to an arbitrary value (1,2, ...) for the primary database based on what works best for that particular database and set a different value (such as 0) for all secondary database used (such as for reporting queries).
  • настроить модель оценки кратности оптимизатора запросов независимо от уровня совместимости базы данных;Set the query optimizer cardinality estimation model independent of the database to compatibility level.
  • включить или выключить перехват параметров на уровне базы данных;Enable or disable parameter sniffing at the database level.
  • включить или выключить исправления оптимизации запросов на уровне базы данных.Enable or disable query optimization hotfixes at the database level.
  • включить или выключить кэширование идентификации на уровне базы данных;Enable or disable the identity cache at the database level.
  • включить или выключить заглушку компилированного плана для сохранения в кэше при первом компилировании пакета.Enable or disable a compiled plan stub to be stored in cache when a batch is compiled for the first time.
  • включить или выключить сбор статистики выполнения для скомпилированных в собственном коде модулей T-SQL.Enable or disable collection of execution statistics for natively compiled T-SQL modules.
  • включить или отключить параметры подключения по умолчанию для инструкций DDL, поддерживающих синтаксис ONLINE =;Enable or disable online by default options for DDL statements that support the ONLINE = syntax.
  • включить или отключить параметры возобновления по умолчанию для инструкций DDL, поддерживающих синтаксис RESUMABLE =;Enable or disable resumable by default options for DDL statements that support the RESUMABLE = syntax.
  • Включение или отключение функции интеллектуальной обработки запросов.Enable or disable Intelligent query processing features.
  • Включение или отключение принудительного применения плана с ускорением.Enable or disable accelerated plan forcing.
  • Включение или отключение функции автоматического удаления глобальных временных таблиц.Enable or disable the auto-drop functionality of global temporary tables.
  • Включение или отключение упрощенной инфраструктуры профилирования запросов.Enable or disable the lightweight query profiling infrastructure.
  • включить или отключить новое сообщение об ошибке String or binary data would be truncated.Enable or disable the new String or binary data would be truncated error message.
  • Включает или отключает запись последнего действительного плана выполнения в sys.dm_exec_query_plan_stats.Enable or disable collection of last actual execution plan in sys.dm_exec_query_plan_stats.
  • Укажите время в минутах, в течение которого операция возобновляемого индекса остается приостановленной, прежде чем она будет автоматически прервана подсистемой SQL Server.Specify the number of minutes that a paused resumable index operation is paused before it is automatically aborted by the SQL Server engine.

Значок ссылки Синтаксические обозначения в Transact-SQLlink icon Transact-SQL Syntax Conventions

СинтаксисSyntax

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 }
    | BATCH_MODE_ON_ROWSTORE = { ON | OFF }
    | DEFERRED_COMPILATION_TV = { ON | OFF }
    | ACCELERATED_PLAN_FORCING = { ON | OFF }
    | GLOBAL_TEMPORARY_TABLE_AUTODROP = { 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>
}

Важно!

Начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x) и в База данных SQL AzureAzure SQL Database изменились некоторые имена параметров:Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) and in База данных SQL AzureAzure SQL Database, some option names have changed:

  • DISABLE_INTERLEAVED_EXECUTION_TVF изменено на INTERLEAVED_EXECUTION_TVFDISABLE_INTERLEAVED_EXECUTION_TVF changed to INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK изменено на BATCH_MODE_MEMORY_GRANT_FEEDBACKDISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK changed to BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS изменено на BATCH_MODE_ADAPTIVE_JOINSDISABLE_BATCH_MODE_ADAPTIVE_JOINS changed to BATCH_MODE_ADAPTIVE_JOINS

АргументыArguments

FOR SECONDARYFOR SECONDARY

Задает параметры для баз данных-получателей (все базы данных-получатели должны иметь одинаковые значения).Specifies the settings for secondary databases (all secondary databases must have the identical values).

CLEAR PROCEDURE_CACHE [plan_handle]CLEAR PROCEDURE_CACHE [plan_handle]

Очистка кэша процедур (планов) для базы данных. Может выполняться для баз данных-источников и баз данных-получателей.Clears the procedure (plan) cache for the database, and can be executed both on the primary and the secondaries.

Укажите дескриптор плана запроса, чтобы удалить отдельный план запроса из кэша планов.Specify a query plan handle to clear a single query plan from the plan cache.

Область применения: Указать дескриптор плана запроса можно в Базе данных SQL Azure и SQL Server 2019 или более поздней версии.APPLIES TO: Specifying a query plan handle is available in Azure SQL Database and SQL Server 2019 or higher.

MAXDOP = {<value> | PRIMARY } <value>MAXDOP = {<value> | PRIMARY } <value>

Задает параметр максимальной степени параллелизма, max degree of parallelism (MAXDOP) , по умолчанию для использования в инструкциях.Specifies the default max degree of parallelism (MAXDOP) setting that should be used for statements. 0 — это значение по умолчанию, указывающее, что вместо этого будет использоваться конфигурация сервера.0 is the default value and indicates that the server configuration will be used instead. MAXDOP на уровне базы данных переопределяет (если имеет значение, отличное от 0) максимальную степень параллелизма, заданную на уровне сервера процедурой sp_configure.The MAXDOP at the database scope overrides (unless it is set to 0) the max degree of parallelism set at the server level by sp_configure. Указания запросов все равно могут переопределять MAXDOP в области базы данных для настройки конкретных запросов, требующих особых параметров.Query hints can still override the database scoped MAXDOP in order to tune specific queries that need different setting. Все эти параметры ограничены параметром MAXDOP, заданным для группы рабочей нагрузки.All these settings are limited by the MAXDOP set for the Workload Group.

Параметр MAXDOP можно использовать для ограничения числа процессоров, применяемых при параллельном выполнении планов.You can use the MAXDOP option to limit the number of processors to use in parallel plan execution. SQL ServerSQL Server учитывает планы параллельного выполнения для запросов, операций с индексами на языке описания данных (DDL), параллельной вставки, изменения столбцов в оперативном режиме, параллельного сбора статистики и для заполнения курсоров (статических и управляемых набором ключей).considers parallel execution plans for queries, index data definition language (DDL) operations, parallel insert, online alter column, parallel stats collection, and static and keyset-driven cursor population.

Примечание

Ограничение параметра max degree of parallelism (MAXDOP) задается для каждой задачи.The max degree of parallelism (MAXDOP) limit is set per task. Оно не задается для каждого запроса.It is not a per request or per query limit. Это означает, что во время параллельного выполнения один запрос может порождать множество задач, назначаемых планировщику.This means that during a parallel query execution, a single request can spawn multiple tasks which are assigned to a scheduler. Дополнительные сведения см. в Руководстве по архитектуре потоков и задач.For more information, see the Thread and Task Architecture Guide.

Сведения о настройке этого параметра на уровне экземпляра см. в разделе Настройка параметра конфигурации сервера max degree of parallelism.To set this option at the instance level, see Configure the max degree of parallelism Server Configuration Option.

Примечание

База данных SQL AzureAzure SQL Database использует конфигурацию, где параметру max degree of parallelism на уровне сервера всегда задается значение 0.In База данных SQL AzureAzure SQL Database, the server-level max degree of parallelism configuration is always set to 0. MAXDOP можно настроить для каждой базы данных, как описано в текущей статье.MAXDOP can be configured for each database as described in the current article. Рекомендации по оптимальной настройке MAXDOP см. в разделе Дополнительные ресурсы.For recommendations on configuring MAXDOP optimally, see the Additional Resources section.

Совет

На уровне запросов используйте указание запроса MAXDOP.To accomplish this at the query level, use the MAXDOP query hint.
На уровне сервера используйте параметр конфигурации сервера max degree of parallelism (MAXDOP) .To accomplish this at the server level, use the max degree of parallelism (MAXDOP) server configuration option.
На уровне рабочих нагрузок используйте параметр конфигурации группы рабочей нагрузки Resource Governor MAX_DOP.To accomplish this at the workload level, use the MAX_DOP Resource Governor workload group configuration option.

PRIMARYPRIMARY

Может задаваться только для баз данных-получателей, пока база данных находится на сервере-источнике, и указывает, что будет использоваться конфигурация, настроенная для сервера-источника.Can only be set for the secondaries, while the database in on the primary, and indicates that the configuration will be the one set for the primary. Если конфигурация для сервера-источника изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется.If the configuration for the primary changes, the value on the secondaries will change accordingly without the need to set the secondaries value explicitly. PRIMARY — это параметр по умолчанию для баз данных-получателей.PRIMARY is the default setting for the secondaries.

LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }

Позволяет указывать модель оценки кратности оптимизатора запросов в SQL Server 2012 и более ранних версиях независимо от уровня совместимости базы данных.Enables you to set the query optimizer cardinality estimation model to the SQL Server 2012 and earlier version independent of the compatibility level of the database. Значение по умолчанию OFF, задающее модель оценки кратности оптимизатора запросов с учетом уровня совместимости баз данных.The default is OFF, which sets the query optimizer cardinality estimation model based on the compatibility level of the database. Присвоение параметру LEGACY_CARDINALITY_ESTIMATION значения ON эквивалентно включению флага трассировки 9481.Setting LEGACY_CARDINALITY_ESTIMATION to ON is equivalent to enabling Trace Flag 9481.

Совет

Для выполнения этого на уровне запросов добавьте указание запроса QUERYTRACEON.To accomplish this at the query level, add the QUERYTRACEON query hint. Начиная с версии SQL Server 2016 (13.x)SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) для выполнения этой задачи на уровне запроса добавьте указание запроса USE HINT, вместо того чтобы использовать флаг трассировки.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, add the USE HINT query hint instead of using the trace flag.

PRIMARYPRIMARY

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что в качестве настройки модели оценки кратности оптимизатора запросов для всех баз данных-получателей будет использоваться значение, заданное для сервера-источника.This value is only valid on secondaries while the database in on the primary, and specifies that the query optimizer cardinality estimation model setting on all secondaries will be the value set for the primary. При изменении конфигурации модели оценки кратности оптимизатора запросов на сервере-источнике значение в базах данных-получателях изменится соответственно.If the configuration on the primary for the query optimizer cardinality estimation model changes, the value on the secondaries will change accordingly. PRIMARY — это параметр по умолчанию для баз данных-получателей.PRIMARY is the default setting for the secondaries.

PARAMETER_SNIFFING = { ON | OFF | PRIMARY}PARAMETER_SNIFFING = { ON | OFF | PRIMARY}

Включает или отключает сканирование параметров.Enables or disables parameter sniffing. Значение по умолчанию — ON.The default is ON. Присвоение параметру PARAMETER_SNIFFING значения OFF эквивалентно включению флага трассировки 4136.Setting PARAMETER_SNIFFING to OFF is equivalent to enabling Trace Flag 4136.

Совет

Для выполнения этой задачи на уровне запроса добавьте указание запроса OPTIMIZE FOR UNKNOWN.To accomplish this at the query level, see the OPTIMIZE FOR UNKNOWN query hint. Начиная с версии SQL Server 2016 (13.x)SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) для выполнения этой задачи на уровне запроса также доступно указание запроса USE HINT.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, the USE HINT query hint is also available.

PRIMARYPRIMARY

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что значение этого параметра для всех баз данных-получателей будет равно значению, заданному для сервера-источника.This value is only valid on secondaries while the database in on the primary, and specifies that the value for this setting on all secondaries will be the value set for the primary. Если конфигурация сервера-источника для сканирования параметров изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется.If the configuration on the primary for using parameter sniffing changes, the value on the secondaries will change accordingly without the need to set the secondaries value explicitly. PRIMARY — это параметр по умолчанию для баз данных-получателей.PRIMARY is the default setting for the secondaries.

QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }

Включает или отключает исправления оптимизации запросов независимо от уровня совместимости базы данных.Enables or disables query optimization hotfixes regardless of the compatibility level of the database. Значение по умолчанию — OFF, которое отключает исправления оптимизации запросов, выпущенные после появления наивысшего доступного уровня совместимости для определенной версии (после RTM).The default is OFF, which disables query optimization hotfixes that were released after the highest available compatibility level was introduced for a specific version (post-RTM). Присвоение этому параметру значения ON эквивалентно включению флага трассировки 4199.Setting this to ON is equivalent to enabling Trace Flag 4199.

Совет

Для выполнения этого на уровне запросов добавьте указание запроса QUERYTRACEON.To accomplish this at the query level, add the QUERYTRACEON query hint. Начиная с версии SQL Server 2016 (13.x)SQL Server 2016 (13.x) с пакетом обновления 1 (SP1) для выполнения этой задачи на уровне запроса добавьте указание запроса USE HINT, вместо того чтобы использовать флаг трассировки.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, add the USE HINT query hint instead of using the trace flag.

PRIMARYPRIMARY

Это значение допустимо только для баз данных-получателей, пока база данных находится на сервере-источнике; оно указывает, что значение этого параметра для всех баз данных-получателей будет равно значению, заданному для сервера-источника.This value is only valid on secondaries while the database in on the primary, and specifies that the value for this setting on all secondaries is the value set for the primary. Если конфигурация для сервера-источника изменится, значение в базах данных-получателях изменится соответственно, задавать значение базы данных-получателя явным образом не требуется.If the configuration for the primary changes, the value on the secondaries changes accordingly without the need to set the secondaries value explicitly. PRIMARY — это параметр по умолчанию для баз данных-получателей.PRIMARY is the default setting for the secondaries.

IDENTITY_CACHE = { ON | OFF }IDENTITY_CACHE = { ON | OFF }

Область применения: SQL ServerSQL Server (начиная с SQL Server 2017 (14.x)SQL Server 2017 (14.x)) и База данных SQL AzureAzure SQL Database.APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and База данных SQL AzureAzure SQL Database

Включает и выключает кэширование идентификации на уровне базы данных.Enables or disables identity cache at the database level. Значение по умолчанию — ON.The default is ON. Кэширование идентификаторов используется для повышения производительности инструкции INSERT в таблицах со столбцами идентификаторов.Identity caching is used to improve INSERT performance on tables with identity columns. Во избежание пропусков значений столбца идентификаторов в случаях, когда сервер неожиданно перезапускается или выполняет обработку отказа на сервер-получатель, отключите параметр IDENTITY_CACHE.To avoid gaps in the values of an identity column in cases where the server restarts unexpectedly or fails over to a secondary server, disable the IDENTITY_CACHE option. Этот параметр похож на существующий флаг трассировки 272 с той разницей, что его можно задать на уровне базы данных, а не только на уровне сервера.This option is similar to the existing Trace Flag 272, except that it can be set at the database level rather than only at the server level.

Примечание

Этот параметр можно задать только для сервера-источника.This option can only be set for the PRIMARY. Дополнительные сведения см. в статье Столбцы идентификаторов.For more information, see identity columns.

INTERLEAVED_EXECUTION_TVF = { ON | OFF }INTERLEAVED_EXECUTION_TVF = { ON | OFF }

Область применения: SQL ServerSQL Server (начиная с SQL Server 2017 (14.x)SQL Server 2017 (14.x)) и База данных SQL AzureAzure SQL Database.APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and База данных SQL AzureAzure SQL Database

Позволяет включить или отключить выполнение с чередованием для функций с табличным значением и множеством инструкций в области базы данных или инструкции, сохранив уровень совместимости базы данных 140 или выше.Allows you to enable or disable Interleaved execution for multi-statement table-valued functions at the database or statement scope while still maintaining database compatibility level 140 and higher. Выполнение с чередованием — одна из возможностей адаптивной обработки запросов в База данных SQL AzureAzure SQL Database.Interleaved execution is a feature that is part of Adaptive query processing in База данных SQL AzureAzure SQL Database. Дополнительные сведения см. в статье Интеллектуальная обработка запросов.For more information, please refer to Intelligent query processing.

Примечание

Для уровня совместимости базы данных 130 или более низкого эта конфигурация области баз данных не оказывает влияния.For database compatibility level 130 or lower, this database scoped configuration has no effect.

Только в SQL Server 2017 (14.x) параметр INTERLEAVED_EXECUTION_TVF имеет старое имя DISABLE_INTERLEAVED_EXECUTION_TVF.In SQL Server 2017 (14.x) only, the option INTERLEAVED_EXECUTION_TVF had the older name of DISABLE_INTERLEAVED_EXECUTION_TVF.

BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2017 (14.x)SQL Server 2017 (14.x)) и База данных SQL AzureAzure SQL Database.APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and База данных SQL AzureAzure SQL Database

Позволяет включить или отключить обратную связь по временно предоставляемому буферу памяти в пакетном режиме в области базы данных, сохранив уровень совместимости базы данных 140 или выше.Allows you to enable or disable batch mode memory grant feedback at the database scope while still maintaining database compatibility level 140 and higher. Обратная связь по временно предоставляемому буферу памяти в пакетном режиме — одна из возможностей интеллектуальной обработки запросов, представленная в SQL Server 2017 (14.x)SQL Server 2017 (14.x).Batch mode memory grant feedback a feature that is part of Intelligent query processing introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x).

Примечание

Для уровня совместимости базы данных 130 или более низкого эта конфигурация области баз данных не оказывает влияния.For database compatibility level 130 or lower, this database scoped configuration has no effect.

BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF}BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2017 (14.x)SQL Server 2017 (14.x)) и База данных SQL AzureAzure SQL Database.APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and База данных SQL AzureAzure SQL Database

Позволяет включить или отключить адаптивные соединения в пакетном режиме в области базы данных, сохранив уровень совместимости базы данных 140 или выше.Allows you to enable or disable batch mode adaptive joins at the database scope while still maintaining database compatibility level 140 and higher. Адаптивные соединения в пакетном режиме — одна из возможностей интеллектуальной обработки запросов, представленная в SQL Server 2017 (14.x)SQL Server 2017 (14.x).Batch mode adaptive joins is a feature that is part of Intelligent query processing introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x).

Примечание

Для уровня совместимости базы данных 130 или более низкого эта конфигурация области баз данных не оказывает влияния.For database compatibility level 130 or lower, this database scoped configuration has no effect.

TSQL_SCALAR_UDF_INLINING = { ON | OFF }TSQL_SCALAR_UDF_INLINING = { ON | OFF }

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) и База данных SQL AzureAzure SQL Database (функция на этапе общедоступной предварительной версии)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and База данных SQL AzureAzure SQL Database (feature is in public preview)

Позволяет включить или отключить встраивание скалярных определяемых пользователем функций для T-SQL в области базы данных, сохранив уровень совместимости базы данных 150 или выше.Allows you to enable or disable T-SQL Scalar UDF inlining at the database scope while still maintaining database compatibility level 150 and higher. Встраивание скалярных определяемых пользователем функций для T-SQL — одна из возможностей семейства функций интеллектуальной обработки запросов.T-SQL Scalar UDF inlining is part of the Intelligent query processing feature family.

Примечание

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.For database compatibility level 140 or lower, this database scoped configuration has no effect.

ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

ПРИМЕНИМО К: База данных SQL AzureAzure SQL Database (компонент в общедоступной предварительной версии)APPLIES TO: База данных SQL AzureAzure SQL Database (feature is in public preview)

Позволяет выбирать параметры, предписывающие ядру автоматически переводить поддерживаемые операции в режим "в сети".Allows you to select options to cause the engine to automatically elevate supported operations to online. Значение по умолчанию — OFF. Оно означает, что операции не будут переводиться в режим "в сети", если это явно не указано в инструкции.The default is OFF, which means operations will not be elevated to online unless specified in the statement. В представлении sys.database_scoped_configurations указывается текущее значение ELEVATE_ONLINE.sys.database_scoped_configurations reflects the current value of ELEVATE_ONLINE. Эти параметры применяются только к операциям, которые поддерживают режим "в сети".These options will only apply to operations that are supported for online.

FAIL_UNSUPPORTEDFAIL_UNSUPPORTED

Это значение переводит все поддерживаемые операции DDL в режим "в сети".This value elevates all supported DDL operations to ONLINE. Операции, не поддерживающие выполнение в режиме "в сети", завершатся сбоем и выдадут предупреждение.Operations that do not support online execution will fail and throw a warning.

WHEN_SUPPORTEDWHEN_SUPPORTED

Это значение изменяет режим выполнения операций, поддерживающих режим "в сети".This value elevates operations that support ONLINE. Операции, не поддерживающие режим "в сети", будут выполняться в режиме "вне сети".Operations that do not support online will be run offline.

Примечание

Переопределить значение по умолчанию можно, отправив инструкцию с параметром ONLINE.You can override the default setting by submitting a statement with the ONLINE option specified.

ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) и База данных SQL AzureAzure SQL Database (функция на этапе общедоступной предварительной версии)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and База данных SQL AzureAzure SQL Database (feature is in public preview)

Позволяет выбирать параметры, предписывающие ядру автоматически переводить поддерживаемые операции в возобновляемый режим.Allows you to select options to cause the engine to automatically elevate supported operations to resumable. Значение по умолчанию — OFF. Оно означает, что операции не будут переводиться в возобновляемый режим, если это явно не указано в инструкции.The default is OFF, which means operations are not be elevated to resumable unless specified in the statement. В представлении sys.database_scoped_configurations указывается текущее значение ELEVATE_RESUMABLE.sys.database_scoped_configurations reflects the current value of ELEVATE_RESUMABLE. Эти параметры применяются только к операциям, которые поддерживают возобновление.These options only apply to operations that are supported for resumable.

FAIL_UNSUPPORTEDFAIL_UNSUPPORTED

Это значение переводит все поддерживаемые операции DDL в возобновляемый режим.This value elevates all supported DDL operations to RESUMABLE. Операции, не поддерживающие возобновляемое выполнение, завершатся сбоем и выдадут предупреждение.Operations that do not support resumable execution fail and throw a warning.

WHEN_SUPPORTEDWHEN_SUPPORTED

Это значение изменяет режим выполнения операций, поддерживающих возобновляемое выполнение.This value elevates operations that support RESUMABLE. Операции, не поддерживающие возобновляемый режим, будут выполняться в невозобновляемом режиме.Operations that do not support resumable are run non-resumably.

Примечание

Переопределить значение по умолчанию можно, отправив инструкцию с параметром RESUMABLE.You can override the default setting by submitting a statement with the RESUMABLE option specified.

OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }

ПРИМЕНИМО К: База данных SQL AzureAzure SQL DatabaseAPPLIES TO: База данных SQL AzureAzure SQL Database

Включает или отключает заглушку скомпилированного плана для сохранения в кэше при первой компиляции пакета.Enables or disables a compiled plan stub to be stored in cache when a batch is compiled for the first time. Значение по умолчанию — OFF.The default is OFF. После включения конфигурации уровня базы данных OPTIMIZE_FOR_AD_HOC_WORKLOADS для базы данных заглушка скомпилированного плана будет сохранена в кэше при первой компиляции пакета.Once the database scoped configuration OPTIMIZE_FOR_AD_HOC_WORKLOADS is enabled for a database, a compiled plan stub will be stored in cache when a batch is compiled for the first time. Заглушки плана расходуют меньше памяти по сравнению с полным скомпилированным планом.Plan stubs have a smaller memory footprint compared to the size of the full compiled plan. Если пакет компилируется или выполняется повторно, заглушка скомпилированного плана будет удалена и заменена полным скомпилированным планом.If a batch is compiled or executed again, the compiled plan stub will be removed and replaced with a full compiled plan.

XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }

ПРИМЕНИМО К: База данных SQL AzureAzure SQL DatabaseAPPLIES TO: База данных SQL AzureAzure SQL Database

Включает или отключает сбор статистики выполнения на уровне модуля для скомпилированных в собственном коде модулей T-SQL в текущей базе данных.Enables or disables collection of execution statistics at the module-level for natively compiled T-SQL modules in the current database. Значение по умолчанию — OFF.The default is OFF. Статистика выполнения отражается в sys.dm_exec_procedure_stats.The execution statistics are reflected in sys.dm_exec_procedure_stats.

Статистика выполнения на уровне модуля для скомпилированных в собственном коде модулей T-SQL собирается либо при значении ON этого параметра, либо если сбор статистики включен с помощью sp_xtp_control_proc_exec_stats.Module-level execution statistics for natively compiled T-SQL modules are collected if either this option is ON, or if statistics collection is enabled through sp_xtp_control_proc_exec_stats.

XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }

ПРИМЕНИМО К: База данных SQL AzureAzure SQL DatabaseAPPLIES TO: База данных SQL AzureAzure SQL Database

Включает или отключает сбор статистики выполнения на уровне инструкций для скомпилированных в собственном коде модулей T-SQL в текущей базе данных.Enables or disables collection of execution statistics at the statement-level for natively compiled T-SQL modules in the current database. Значение по умолчанию — OFF.The default is OFF. Статистика выполнения отражается в sys.dm_exec_query_stats и в хранилище запросов.The execution statistics are reflected in sys.dm_exec_query_stats and in Query Store.

Статистика выполнения на уровне инструкций для скомпилированных в собственном коде модулей T-SQL собирается либо при значении ON этого параметра, либо если сбор статистики включен с помощью sp_xtp_control_query_exec_stats.Statement-level execution statistics for natively compiled T-SQL modules are collected if either this option is ON, or if statistics collection is enabled through sp_xtp_control_query_exec_stats.

Дополнительные сведения о мониторинге производительности скомпилированных в собственном коде модулей Transact-SQLTransact-SQL см. в статье Отслеживание производительности скомпилированных в собственном коде хранимых процедур.For more information about performance monitoring of natively compiled Transact-SQLTransact-SQL modules see Monitoring Performance of Natively Compiled Stored Procedures.

ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) и База данных SQL AzureAzure SQL Database (функция на этапе общедоступной предварительной версии)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and База данных SQL AzureAzure SQL Database (feature is in public preview)

Позволяет включить или отключить обратную связь по временно предоставляемому буферу памяти в построчном режиме в области базы данных, сохранив уровень совместимости базы данных 150 или выше.Allows you to enable or disable row mode memory grant feedback at the database scope while still maintaining database compatibility level 150 and higher. Обратная связь по временно предоставляемому буферу памяти в режиме строк — одна из возможностей интеллектуальной обработки запросов, представленная в SQL Server 2017 (14.x)SQL Server 2017 (14.x) (режим строк поддерживается в SQL Server 2019 (15.x)SQL Server 2019 (15.x) и База данных SQL AzureAzure SQL Database).Row mode memory grant feedback a feature that is part of Intelligent query processing introduced in SQL Server 2017 (14.x)SQL Server 2017 (14.x) (row mode is supported in SQL Server 2019 (15.x)SQL Server 2019 (15.x) and База данных SQL AzureAzure SQL Database).

Примечание

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.For database compatibility level 140 or lower, this database scoped configuration has no effect.

BATCH_MODE_ON_ROWSTORE = { ON | OFF}BATCH_MODE_ON_ROWSTORE = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) и База данных SQL AzureAzure SQL Database (функция на этапе общедоступной предварительной версии)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and База данных SQL AzureAzure SQL Database (feature is in public preview)

Позволяет включить или отключить пакетный режим для данных rowstore в области базы данных, сохранив уровень совместимости базы данных 150 или выше.Allows you to enable or disable batch mode on rowstore at the database scope while still maintaining database compatibility level 150 and higher. Пакетный режим для данных rowstore — одна из возможностей семейства функций адаптивной обработки запросов.Batch mode on rowstore is a feature that is part of Intelligent query processing feature family.

Примечание

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.For database compatibility level 140 or lower, this database scoped configuration has no effect.

DEFERRED_COMPILATION_TV = { ON | OFF}DEFERRED_COMPILATION_TV = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) и База данных SQL AzureAzure SQL Database (функция на этапе общедоступной предварительной версии)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and База данных SQL AzureAzure SQL Database (feature is in public preview)

Позволяет включить или отключить отложенную компиляцию табличных переменных в области базы данных, сохранив уровень совместимости базы данных 150 или выше.Allows you to enable or disable table variable deferred compilation at the database scope while still maintaining database compatibility level 150 and higher. Отложенная компиляция табличных переменных — одна из возможностей семейства функций адаптивной обработки запросов.Table variable deferred compilation is a feature that is part of Intelligent query processing feature family.

Примечание

Для уровня совместимости базы данных 140 или более низкого эта конфигурация области баз данных не оказывает влияния.For database compatibility level 140 or lower, this database scoped configuration has no effect.

ACCELERATED_PLAN_FORCING = { ON | OFF }ACCELERATED_PLAN_FORCING = { ON | OFF }

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x))Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x))

Включает оптимизированный механизм для принудительного применения плана запроса, допустимый для всех форм применения планов, таких как Принудительно использовать план хранилища запросов, Автоматическая настройка или подсказка запроса USE PLAN.Enables an optimized mechanism for query plan forcing, applicable to all forms of plan forcing, such as Query Store Force Plan, Automatic Tuning, or the USE PLAN query hint. Значение по умолчанию — ON.The default is ON.

Примечание

Не рекомендуется отключать ускоренное применение планов.It is not recommended to disable accelerated plan forcing.

GLOBAL_TEMPORARY_TABLE_AUTODROP = { ON | OFF }GLOBAL_TEMPORARY_TABLE_AUTODROP = { ON | OFF }

ПРИМЕНИМО К: База данных SQL AzureAzure SQL Database (компонент в общедоступной предварительной версии)APPLIES TO: База данных SQL AzureAzure SQL Database (feature is in public preview)

Настройка функции автоматического удаления глобальных временных таблиц.Allows setting the auto-drop functionality for global temporary tables. По умолчанию имеет значение ON, то есть глобальные временные таблицы автоматически удаляются, когда не используются ни одним сеансом.The default is ON, which means that the global temporary tables are automatically dropped when not in use by any session. Если задано значение OFF, глобальные временные таблицы следует удалять явным образом с помощью инструкции DROP TABLE, или они будут автоматически удалены при перезапуске сервера.When set to OFF, global temporary tables need to be explicitly dropped using a DROP TABLE statement or will be automatically dropped on server restart.

  • В отдельных базах данных и эластичных пулах База данных SQL AzureAzure SQL Database этот параметр можно задать для отдельных баз данных пользователей сервера Базы данных SQL.With База данных SQL AzureAzure SQL Database single databases and elastic pools, this option can be set in the individual user databases of the SQL Database server.
  • В SQL ServerSQL Server и управляемом экземпляре База данных SQL AzureAzure SQL Database этот параметр задается в TempDB и не учитывается на уровне отдельных пользовательских баз данных.In SQL ServerSQL Server and База данных SQL AzureAzure SQL Database managed instance, this option is set in TempDB and the setting of the individual user databases has no effect.

LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF}LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) и База данных SQL AzureAzure SQL Database.APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and База данных SQL AzureAzure SQL Database

Делает возможным включение или отключение упрощенной инфраструктуры профилирования запросов.Allows you to enable or disable the lightweight query profiling infrastructure. Упрощенная инфраструктура профилирования запросов (LWP) предоставляет более эффективные данные производительности запросов по сравнению со стандартными механизмами профилирования. По умолчанию она включена.The lightweight query profiling infrastructure (LWP) provides query performance data more efficiently than standard profiling mechanisms and is enabled by default.

VERBOSE_TRUNCATION_WARNINGS = { ON | OFF}VERBOSE_TRUNCATION_WARNINGS = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) и База данных SQL AzureAzure SQL Database.APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and База данных SQL AzureAzure SQL Database

Позволяет включить или отключить новое сообщение об ошибке String or binary data would be truncated.Allows you to enable or disable the new String or binary data would be truncated error message. В SQL Server 2019 (15.x)SQL Server 2019 (15.x) добавлено новое, более конкретное сообщение об ошибке (2628) для подобного сценария:SQL Server 2019 (15.x)SQL Server 2019 (15.x) introduces a new, more specific error message (2628) for this scenario:

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

Если задано значение ON при уровне совместимости базы данных 150, для ошибок усечения выдается новое сообщение об ошибке 2628, которое содержит больше сведений о проблеме и упрощает процесс устранения неполадок.When set to ON under database compatibility level 150, truncation errors raise the new error message 2628 to provide more context and simplify the troubleshooting process.

Если задано значение OFF при уровне совместимости базы данных 150, для ошибок усечения выдается прежнее сообщение об ошибке 8152.When set to OFF under database compatibility level 150, truncation errors raise the previous error message 8152.

Для уровня совместимости базы данных 140 или более низкого сообщение об ошибке 2628 активируется явным образом и требует включения флага трассировки 460, поэтому эта конфигурация области баз данных не оказывает влияния.For database compatibility level 140 or lower, error message 2628 remains an opt-in error message that requires trace flag 460 to be enabled, and this database scoped configuration has no effect.

LAST_QUERY_PLAN_STATS = { ON | OFF}LAST_QUERY_PLAN_STATS = { ON | OFF}

Область применения: SQL ServerSQL Server (начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x)) (функция на этапе общедоступной предварительной версии)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) (feature is in public preview)

Позволяет включать и отключать сбор статистики последнего плана запроса (эквивалент фактического плана выполнения) в sys.dm_exec_query_plan_stats.Allows you to enable or disable collection of the last query plan statistics (equivalent to an actual execution plan) in sys.dm_exec_query_plan_stats.

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTESPAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

Область применения: Только База данных SQL AzureAPPLIES TO: Azure SQL Database only

Параметр PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES определяет время (в минутах), в течение которого возобновляемый индекс приостанавливается перед автоматическим прерыванием обработчиком.The PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES option determines how long (in minutes) the resumable index is being paused before being automatically aborted by the engine.

  • Значение по умолчанию — 1 день (1440 минут)The default value is set to 1 day (1440 minutes)
  • Минимальная длительность — 1 минутаThe minimum duration is set to 1 minute
  • Максимальная длительность — 71 582 минутыThe maximum duration is 71582 minutes
  • Если задано значение 0, приостановленная операция никогда не будет автоматически прерыватьсяWhen set to 0, a paused operation will never automatically abort

Текущее значение этого параметра отображается в sys.database_scoped_configurations.The current value for this option is displayed in sys.database_scoped_configurations.

PermissionsPermissions

Необходимо разрешение ALTER ANY DATABASE SCOPE CONFIGURATION для базы данных.Requires ALTER ANY DATABASE SCOPE CONFIGURATION on the database. Это разрешение может быть предоставлено пользователем, имеющим разрешение CONTROL для базы данных.This permission can be granted by a user with CONTROL permission on a database.

Общие замечанияGeneral Remarks

Можно настроить базы данных-получатели с отличающимися по уровню от сервера-источника параметрами конфигурации, все базы данных-получатели используют одну и ту же конфигурацию.While you can configure secondary databases to have different scoped configuration settings from their primary, all secondary databases use the same configuration. Невозможно настроить разные параметры для разных баз данных-получателей.Different settings cannot be configured for individual secondaries.

При выполнении этой инструкции очищается кэш процедур в текущей базе данных; это означает, что нужно перекомпилировать все запросы.Executing this statement clears the procedure cache in the current database, which means that all queries have to recompile.

Что касается трехчастных запросов имен, для запроса соблюдаются параметры текущего подключения базы данных. Это не относится к модулям SQL (процедуры, функции и триггеры), которые компилируются в контексте текущей базы данных и применяют параметры базы данных, в которой они находятся.For 3-part name queries, the settings for the current database connection for the query are honored, other than for SQL modules (such as procedures, functions, and triggers) that are compiled in the current database context and therefore uses the options of the database in which they reside.

Событие ALTER_DATABASE_SCOPED_CONFIGURATION добавляется дочерним элементом в группу триггеров ALTER_DATABASE_EVENTS в качестве события DDL, с помощью которого можно инициировать триггер DDL.The ALTER_DATABASE_SCOPED_CONFIGURATION event is added as a DDL event that can be used to fire a DDL trigger, and is a child of the ALTER_DATABASE_EVENTS trigger group.

Параметры конфигурации уровня базы данных будут перенесены вместе с базой данных, то есть при восстановлении или подключении любой базы данных сохранятся ее текущие параметры конфигурации.Database scoped configuration settings will be carried over with the database, which means that when a given database is restored or attached, the existing configuration settings remain.

Начиная с SQL Server 2019 (15.x)SQL Server 2019 (15.x) и в База данных SQL AzureAzure SQL Database изменились некоторые имена параметров:Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) and in База данных SQL AzureAzure SQL Database, some option names have changed:

  • DISABLE_INTERLEAVED_EXECUTION_TVF изменено на INTERLEAVED_EXECUTION_TVFDISABLE_INTERLEAVED_EXECUTION_TVF changed to INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK изменено на BATCH_MODE_MEMORY_GRANT_FEEDBACKDISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK changed to BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS изменено на BATCH_MODE_ADAPTIVE_JOINSDISABLE_BATCH_MODE_ADAPTIVE_JOINS changed to BATCH_MODE_ADAPTIVE_JOINS

ОграниченияLimitations and Restrictions

MAXDOPMAXDOP

Детализированные параметры могут переопределять глобальные, а регулятор ресурсов может ограничивать все остальные параметры MAXDOP.The granular settings can override the global ones and that resource governor can cap all other MAXDOP settings. Логика параметра MAXDOP выглядит следующим образом:The logic for MAXDOP setting is the following:

  • Указание запроса переопределяет процедуру sp_configure и параметр уровня базы данных.Query hint overrides both the sp_configure and the database scoped configuration. Если для группы рабочей нагрузки задана группа ресурсов MAXDOP:If the resource group MAXDOP is set for the workload group:

    • Если указание запроса имеет нулевое значение (0), оно переопределяется параметром Resource Governor.If the query hint is set to zero (0), it is overridden by the resource governor setting.

    • Если указание запроса имеет значение, отличное от нулевого (0), оно ограничивается параметром Resource Governor.If the query hint is not zero (0), it is capped by the resource governor setting.

  • Параметр уровня БД (если он отличен от нуля) переопределяет параметр процедуры sp_configure, кроме случаев, когда имеется указание запроса и оно ограничено параметром Resource Governor.The database scoped configuration (unless it's zero) overrides the sp_configure setting unless there is a query hint and is capped by the resource governor setting.

  • Параметр процедуры sp_configure переопределяется параметром Resource Governor.The sp_configure setting is overridden by the resource governor setting.

QUERY_OPTIMIZER_HOTFIXESQUERY_OPTIMIZER_HOTFIXES

Указание QUERYTRACEON используется для включения оптимизатора запросов по умолчанию для версий от SQL Server 7.0 до SQL Server 2012 (11.x)SQL Server 2012 (11.x) или исправлений оптимизатора запросов; между указанием запроса и параметром конфигурации уровня базы данных используется условие ИЛИ, что означает, что если хотя бы одна из этих сущностей включена, параметры уровня базы данных применяются.When QUERYTRACEON hint is used to enable the default query optimizer of SQL Server 7.0 through SQL Server 2012 (11.x)SQL Server 2012 (11.x) versions or query optimizer hotfixes, it would be an OR condition between the query hint and the database scoped configuration setting, meaning if either is enabled, the database scoped configurations apply.

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

Доступные для чтения базы данных-получатели (группы доступности Always On и геореплицируемые базы данных в службе База данных SQL AzureAzure SQL Database) используют значение базы данных-получателя, проверяя состояние базы данных.Readable secondary databases (Always On Availability Groups and База данных SQL AzureAzure SQL Database geo-replicated databases), use the secondary value by checking the state of the database. Несмотря на то что при отработке отказа не происходит компиляция и технически на новом сервере-источнике существуют запросы, использующие параметры базы данных-получателя, суть в том, что параметр между источником и получателем меняется только в том случае, если рабочая нагрузка различается. Следовательно, кэшированные запросы используют оптимальные параметры, а новые запросы выбирают подходящие для них новые параметры.Even though recompile does not occur on failover and technically the new primary has queries that are using the secondary settings, the idea is that the setting between primary and secondary only vary when the workload is different and therefore the cached queries are using the optimal settings, whereas new queries pick the new settings that are appropriate for them.

DacFxDacFx

Так как инструкция ALTER DATABASE SCOPED CONFIGURATION — это новая функция в База данных SQL AzureAzure SQL Database и SQL ServerSQL Server (начиная с SQL Server 2016 (13.x)SQL Server 2016 (13.x)), которая влияет на схему базы данных, экспорт схемы (с данными или без них) невозможно импортировать в более старую версию SQL ServerSQL Server, например SQL Server 2012 (11.x)SQL Server 2012 (11.x) или SQL Server 2014 (12.x)SQL Server 2014 (12.x).Since ALTER DATABASE SCOPED CONFIGURATION is a new feature in База данных SQL AzureAzure SQL Database and SQL ServerSQL Server (starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x)) that affects the database schema, exports of the schema (with or without data) are not able to be imported into an older version of SQL ServerSQL Server, such as SQL Server 2012 (11.x)SQL Server 2012 (11.x) or SQL Server 2014 (12.x)SQL Server 2014 (12.x). Например, экспорт в DACPAC или BACPAC из базы данных База данных SQLSQL Database или SQL Server 2016 (13.x)SQL Server 2016 (13.x), использовавшей эту новую функцию, невозможно будет импортировать на сервер нижнего уровня.For example, an export to a DACPAC or a BACPAC from an База данных SQLSQL Database or SQL Server 2016 (13.x)SQL Server 2016 (13.x) database that used this new feature would not be able to be imported into a down-level server.

ELEVATE_ONLINEELEVATE_ONLINE

Этот параметр применяется только к инструкциям DDL, поддерживающим синтаксис WITH (ONLINE = <syntax>).This option only applies to DDL statements that support the WITH (ONLINE = <syntax>). Не затрагивает индексы XML.XML indexes are not affected.

ELEVATE_RESUMABLEELEVATE_RESUMABLE

Этот параметр применяется только к инструкциям DDL, поддерживающим синтаксис WITH (RESUMABLE = <syntax>).This option only applies to DDL statements that support the WITH (RESUMABLE = <syntax>). Не затрагивает индексы XML.XML indexes are not affected.

МетаданныеMetadata

Системное представление sys.database_scoped_configurations (Transact-SQL) предоставляет информацию о конфигурациях ограниченной области применения в базах данных.The sys.database_scoped_configurations (Transact-SQL) system view provides information about scoped configurations within a database. Параметры конфигурации уровня БД отображаются только в sys.database_scoped_configurations, поскольку являются переопределениями параметров по умолчанию для всего сервера.Database-scoped configuration options only show up in sys.database_scoped_configurations as they are overrides to server-wide default settings. В системном представлении sys.configurations (Transact-SQL) отображаются только параметры для всего сервера.The sys.configurations (Transact-SQL) system view only shows server-wide settings.

ПримерыExamples

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

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

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

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION to [Joe] ;

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

В этом примере задается MAXDOP = 1 для базы данных-источника и MAXDOP = 4 для базы данных-получателя в сценарии георепликации.This example sets MAXDOP = 1 for a primary database and MAXDOP = 4 for a secondary database in a geo-replication scenario.

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

В этом примере MAXDOP для базы данных-получателя задается равным этому параметру для базы данных-источника в сценарии георепликации.This example sets MAXDOP for a secondary database to be the same as it is set for its primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY ;

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

В этом примере для параметра LEGACY_CARDINALITY_ESTIMATION задается значение ON для базы данных-получателя в сценарии георепликации.This example sets LEGACY_CARDINALITY_ESTIMATION to ON for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = ON ;

В этом примере параметр LEGACY_CARDINALITY_ESTIMATION для базы данных-получателя задается равным параметру для базы данных-источника в сценарии георепликации.This example sets LEGACY_CARDINALITY_ESTIMATION for a secondary database as it is for its primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY ;

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

В этом примере параметру PARAMETER_SNIFFING присваивается значение OFF для базы данных-источника в сценарии георепликации.This example sets PARAMETER_SNIFFING to OFF for a primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = OFF ;

В этом примере параметру PARAMETER_SNIFFING присваивается значение OFF для базы данных-получателя в сценарии георепликации.This example sets PARAMETER_SNIFFING to OFF for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = OFF ;

В этом примере параметр PARAMETER_SNIFFING для базы данных-получателя задается равным параметру для базы данных-источника в сценарии георепликации.This example sets PARAMETER_SNIFFING for secondary database as it is on primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY ;

Д.E. Задание параметра QUERY_OPTIMIZER_HOTFIXESSet QUERY_OPTIMIZER_HOTFIXES

Задайте для параметра QUERY_OPTIMIZER_HOTFIXES значение ON для базы данных-источника в сценарии георепликации.Set QUERY_OPTIMIZER_HOTFIXES to ON for a primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = ON ;

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

В этом примере очищается кэш процедур (возможно только для базы данных-источника).This example clears the procedure cache (possible only for a primary database).

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

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

Область применения: SQL ServerSQL Server (начиная с SQL Server 2017 (14.x)SQL Server 2017 (14.x)) и База данных SQL AzureAzure SQL Database (функция на этапе общедоступной предварительной версии)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and База данных SQL AzureAzure SQL Database (feature is in public preview)

В этом примере отключается кэш идентификаторов.This example disables the identity cache.

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF ;

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

ПРИМЕНИМО К: База данных SQL AzureAzure SQL DatabaseAPPLIES TO: База данных SQL AzureAzure SQL Database

В этом примере включается заглушка скомпилированного плана для сохранения в кэше при первой компиляции пакета.This example enables a compiled plan stub to be stored in cache when a batch is compiled for the first time.

ALTER DATABASE SCOPED CONFIGURATION SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

И.I. Задание ELEVATE_ONLINESet ELEVATE_ONLINE

ПРИМЕНИМО К: База данных SQL AzureAzure SQL Database (компонент в общедоступной предварительной версии)APPLIES TO: База данных SQL AzureAzure SQL Database (feature is in public preview)

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

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_ONLINE = FAIL_UNSUPPORTED ;

К.J. Задание ELEVATE_RESUMABLESet ELEVATE_RESUMABLE

ПРИМЕНИМО К: База данных SQL AzureAzure SQL Database и SQL Server 2019 (15.x)SQL Server 2019 (15.x) (компонент в общедоступной предварительной версии)APPLIES TO: База данных SQL AzureAzure SQL Database and SQL Server 2019 (15.x)SQL Server 2019 (15.x) (feature is in public preview)

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

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_RESUMABLE = WHEN_SUPPORTED ;

Л.K. Очистка плана запроса из кэша плановClear a query plan from the plan cache

Область применения: SQL ServerSQL Server (начиная с SQL Server 2017 (14.x)SQL Server 2017 (14.x)) и База данных SQL AzureAzure SQL Database.APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x)) and База данных SQL AzureAzure SQL Database

В этом примере конкретный план удаляется из кэша процедурThis example clears a specific plan from the procedure cache

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

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

Область применения: Только База данных SQL AzureAPPLIES TO: Azure SQL Database only

В этом примере задается длительность паузы возобновляемого индекса 60 минут.This example sets the resumable index paused duration to 60 minutes.

ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60

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

Ресурсы MAXDOPMAXDOP Resources

Ресурсы по параметру LEGACY_CARDINALITY_ESTIMATIONLEGACY_CARDINALITY_ESTIMATION Resources

Ресурсы по параметру PARAMETER_SNIFFINGPARAMETER_SNIFFING Resources

Ресурсы по параметру QUERY_OPTIMIZER_HOTFIXESQUERY_OPTIMIZER_HOTFIXES Resources

Ресурсы по ELEVATE_ONLINEELEVATE_ONLINE Resources

Рекомендации по операциям с индексами в оперативном режимеGuidelines for Online Index Operations

Ресурсы по ELEVATE_RESUMABLEELEVATE_RESUMABLE Resources

Рекомендации по операциям с индексами в оперативном режимеGuidelines for Online Index Operations

Дополнительные сведенияMore information

sys.database_scoped_configurations sys.database_scoped_configurations
Рекомендации и правила для параметра конфигурации "max degree of parallelism" в SQL Server Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server
sys.configurations sys.configurations
Представления каталога баз данных и файлов Databases and Files Catalog Views
Параметры конфигурации сервера Server Configuration Options
Об операциях с индексом в сети How Online Index Operations Work
Выполнение операций с индексами в режиме "в сети" Perform Index Operations Online
ALTER INDEX (Transact-SQL) ALTER INDEX (Transact-SQL)
CREATE INDEX (Transact-SQL)CREATE INDEX (Transact-SQL)