Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает параметры базы данных в Microsoft SQL Server, База данных SQL Azure и Azure Synapse Analytics. For other ALTER DATABASE options, see ALTER DATABASE.
Note
Для настройки некоторых параметров с помощью ALTER DATABASE может потребоваться эксклюзивный доступ к базе данных. Если инструкция ALTER DATABASE не выполняется своевременно, проверьте, блокируют ли другие сеансы в базе данных.
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
Выбор продукта
В следующей строке выберите имя продукта, который вас интересует. На этой веб-странице отобразится другой контент, относящийся к выбранному продукту.
* SQL Server *
SQL Server
Зеркальное отображение базы данных, группы доступности AlwaysOn и уровни совместимости являются SET
вариантами, но описаны в отдельных статьях из-за их длины. Дополнительные сведения см. в статьях Зеркальное отображение базы данных ALTER DATABASE (Transact-SQL), ALTER DATABASE (Transact-SQL) SET HADR и Уровень совместимости инструкции ALTER DATABASE (Transact-SQL).
Конфигурации уровня базы данных используются для задания нескольких конфигураций базы данных на уровне отдельных баз данных. Дополнительные сведения см. в статье ALTER DATABASE SCOPED CONFIGURATION.
Note
Many database set options can be configured for the current session by using SET statements and are often configured by applications when they connect. Параметры инструкции SET уровня сеанса переопределяют значения ALTER DATABASE SET
. Описанные в следующих разделах параметры базы данных являются значениями, которые можно задавать для сеансов, не предоставляющих явно другие значения параметра SET.
Syntax
ALTER DATABASE { database_name | CURRENT }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
<option_spec> ::=
{
<accelerated_database_recovery>
| <auto_option>
| <automatic_tuning_option>
| <change_tracking_option>
| <containment_option>
| <cursor_option>
| <data_retention_policy>
| <database_mirroring_option>
| <date_correlation_optimization_option>
| <db_encryption_option>
| <db_state_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <external_access_option>
| FILESTREAM ( <FILESTREAM_option> )
| <HADR_options>
| <mixed_page_allocation_option>
| <optimized_locking>
| <parameterization_option>
| <query_store_options>
| <recovery_option>
| <remote_data_archive_option>
| <persistent_log_buffer_option>
| <service_broker_option>
| <snapshot_option>
| <sql_option>
| <suspend_for_snapshot_backup>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
}
;
<accelerated_database_recovery> ::=
{
ACCELERATED_DATABASE_RECOVERY = { ON | OFF }
[ ( PERSISTENT_VERSION_STORE_FILEGROUP = { filegroup name } ) ]
}
<auto_option> ::=
{
AUTO_CLOSE { ON | OFF }
| AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<containment_option> ::=
CONTAINMENT = { NONE | PARTIAL }
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
| CURSOR_DEFAULT { LOCAL | GLOBAL }
}
<database_mirroring_option>
ALTER DATABASE Database Mirroring
<date_correlation_optimization_option> ::=
DATE_CORRELATION_OPTIMIZATION { ON | OFF }
<db_encryption_option> ::=
ENCRYPTION { ON | OFF | SUSPEND | RESUME }
<db_state_option> ::=
{ ONLINE | OFFLINE | EMERGENCY }
<db_update_option> ::=
{ READ_ONLY | READ_WRITE }
<db_user_access_option> ::=
{ SINGLE_USER | RESTRICTED_USER | MULTI_USER }
<delayed_durability_option> ::=
DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<external_access_option> ::=
{
DB_CHAINING { ON | OFF }
| TRUSTWORTHY { ON | OFF }
| DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
| DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
| NESTED_TRIGGERS = { OFF | ON }
| TRANSFORM_NOISE_WORDS = { OFF | ON }
| TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}
<FILESTREAM_option> ::=
{
NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL
| DIRECTORY_NAME = <directory_name>
}
<HADR_options> ::=
ALTER DATABASE SET HADR
<mixed_page_allocation_option> ::=
MIXED_PAGE_ALLOCATION { OFF | ON }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF [ ( FORCED ) ]
| = ON [ ( <query_store_option_list> [,...n] ) ]
| ( < query_store_option_list> [,...n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> :: =
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<recovery_option> ::=
{
RECOVERY { FULL | BULK_LOGGED | SIMPLE }
| TORN_PAGE_DETECTION { ON | OFF }
| PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}
<remote_data_archive_option> ::=
{
REMOTE_DATA_ARCHIVE =
{
ON ( SERVER = <server_name>,
{
CREDENTIAL = <db_scoped_credential_name>
| FEDERATED_SERVICE_ACCOUNT = ON | OFF
}
)
| OFF
}
}
<persistent_log_buffer_option> ::=
{
PERSISTENT_LOG_BUFFER
{
= ON (DIRECTORY_NAME= 'path-to-directory-on-a-DAX-volume')
| = OFF
}
}
<service_broker_option> ::=
{
ENABLE_BROKER
| DISABLE_BROKER
| NEW_BROKER
| ERROR_BROKER_CONVERSATIONS
| HONOR_BROKER_PRIORITY { ON | OFF }
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<suspend_for_snapshot_backup> ::=
SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF } [ ( MODE = COPY_ONLY ) ]
<target_recovery_time_option> ::=
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
<termination>::=
{
ROLLBACK AFTER number [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
}
<temporal_history_retention> ::=
TEMPORAL_HISTORY_RETENTION { ON | OFF }
<data_retention_policy> ::=
DATA_RETENTION { ON | OFF }
<optimized_locking> ::=
{
OPTIMIZED_LOCKING = { ON | OFF }
}
Arguments
database_name
Имя изменяемой базы данных.
CURRENT
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Выполняет действие в текущей базе данных.
CURRENT
работает не со всеми параметрами и не во всех контекстах. Если CURRENT
не работает, укажите имя базы данных.
< > accelerated_database_recovery ::=
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Включает ускоренное восстановление базы данных (ADR). ADR по умолчанию имеет значение OFF в SQL Server 2019 (15.x) и более поздних версий. С помощью этого синтаксиса можно назначить определенную файловую группу для данных хранилища постоянных версий (PVS). Если файловая группа не указана, PVS использует PRIMARY
файловую группу. Дополнительные сведения см. в статье Управление ускорением восстановления базы данных.
Чтобы задать ACCELERATED_DATABASE_RECOVERY ON или OFF, активные подключения к базе данных не должны быть, кроме подключения, выполняемого командой ALTER DATABASE. Однако это не означает, что база данных должна находиться в однопользовательском режиме. Вы не можете изменить состояние этого параметра, если база данных не имеет значение ONLINE.
< > auto_option ::=
Управляет автоматическими параметрами.
AUTO_CLOSE { ON | OFF }
ON
База данных закрыта правильно, а ее ресурсы освобождены после выхода последнего пользователя.
База данных автоматически открывается, если пользователь снова пытается подключиться к ней. Например, это поведение возникает, когда пользователь выдает инструкцию
USE database_name
. База данных может завершить работу с AUTO_CLOSE включено. Если это так, база данных не открывается, пока пользователь не пытается использовать базу данных при следующем перезапуске ядра СУБД.После завершения работы базы данных при следующей попытке приложения ее использовать необходимо сначала открыть базу данных, а затем ее состояние изменится на "В сети". Это может занять некоторое время и привести к превышению времени ожидания приложения.
OFF
База данных остается открытой после того, как последний пользователь вышел.
Параметр AUTO_CLOSE полезен для настольных баз данных, поскольку он позволяет управлять файлами базы данных так же, как обычными файлами. Они могут быть перемещены, скопированы для создания резервной копии или даже отосланы по электронной почте другим пользователям. AUTO_CLOSE — это асинхронный процесс. Многократное открытие и закрытие базы данных не влияет на производительность.
Note
Параметр AUTO_CLOSE недоступен в автономной базе данных или в База данных SQL.
You can determine this option's status by examining the is_auto_close_on
column in the sys.databases catalog view or the IsAutoClose
property of the DATABASEPROPERTYEX function.
When AUTO_CLOSE is set to ON, some columns in the sys.databases catalog view and the DATABASEPROPERTYEX function returns NULL because the database is unavailable to retrieve the data. Для решения этой проблемы выполните инструкцию USE, чтобы открыть базу данных.
Для зеркального отображения базы данных требуется, чтобы для параметра AUTO_CLOSE было установлено значение OFF.
Если для базы данных задано AUTOCLOSE = ON
значение, операция, инициирующая автоматическое завершение работы базы данных, очищает кэш планов для экземпляра SQL Server. Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. Начиная с SQL Server 2005 (9.x) с пакетом обновления 2 (SP2) для каждого очищаемого хранилища кэша в кэше плана, журнал ошибок SQL Server содержит следующее информационное сообщение: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations
Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени.
Параметр AUTO_CLOSE может быть полезной функцией в некоторых редких ситуациях, например, в экземпляре SQL Server без достаточного объема памяти для стабильной работы с большим количеством баз данных или для устаревшего 32-разрядного экземпляра SQL Server с большим количеством баз данных. В таких сценариях может быть полезно включить AUTO_CLOSE и сохранить ресурсы памяти, необходимые для обеспечения открытой базы данных, если приложение не использует базу данных. Когда база данных открыта, требуются некоторые выделения памяти по умолчанию (например, внутренние структуры для представления различных объектов метаданных базы данных и буферов журнала транзакций).
AUTO_CREATE_STATISTICS { ON | OFF }
ON
Оптимизатор запросов в случае необходимости создает статистику по отдельным столбцам в предикатах запросов, чтобы улучшить планы запросов и повысить производительность запросов. Такая статистика по отдельным столбцам создается, когда оптимизатор запросов компилирует запросы. Статистика по отдельным столбцам создается только для столбцов, ни один из которых не является первым столбцом в существующем объекте статистики.
Значение по умолчанию — ON. Для большинства баз данных рекомендуется использовать значение по умолчанию.
OFF
Оптимизатор запросов не создает статистику по отдельным столбцам в предикатах запросов во время компиляции запросов. Отключение этого параметра может повлечь создание неоптимальных планов запросов и снижение производительности запросов.
You can determine this option's status by examining the is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the Database-wide statistics options" in Statistics.
INCREMENTAL = ON | ОТ
Applies to: SQL Server (Starting with SQL Server 2014 (12.x)) and Azure SQL Database
Присваивает AUTO_CREATE_STATISTICS значение ON, а INCREMENTAL — значение ON. Он создает автоматически создаваемые статистики как добавочные везде, где поддерживаются добавочные статистики. Значение по умолчанию — OFF. For more information, see CREATE STATISTICS.
AUTO_SHRINK { ON | OFF }
ON
Файлы базы данных являются кандидатами на периодическое сжатие. Если у вас нет определенного требования, не устанавливайте параметр базы данных AUTO_SHRINK значение ON. Дополнительные сведения см. в разделе Сжатие базы данных.
И файлы данных, и файлы журналов могут быть автоматически сжаты. AUTO_SHRINK уменьшает размер журнала транзакций только в том случае, если вы выбрали простую модель восстановления базы данных или создали резервную копию журнала. Если параметр AUTO_SHRINK задан как OFF, файлы базы данных не будут автоматически сжиматься при периодической проверке на неиспользуемое пространство.
При включенном параметре AUTO_SHRINK файлы будут сжаты, если более 25 процентов файла содержат неиспользуемое пространство. Он сжимает файл до одного из двух размеров (в зависимости от того, какое значение больше):
- размер, при котором 25 процентов файла не используется;
- размер файла при его создании.
Нельзя сжать базу данных, находящуюся в состоянии только для чтения.
OFF
Файлы базы данных не будут автоматически сжаты во время периодических проверок неиспользуемого пространства.
You can determine this option's status by examining the is_auto_shrink_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoShrink
property of the DATABASEPROPERTYEX function.
Note
В автономной базе данных параметр AUTO_SHRINK недоступен.
AUTO_UPDATE_STATISTICS { ON | OFF }
ON
Указывает, что оптимизатор запросов обновляет статистику, если она используется в запросе и может оказаться устаревшей. Статистика становится устаревшей, после того как операции вставки, обновления, удаления или слияния изменяют распределение данных в таблице или индексированном представлении. Оптимизатор запросов определяет, когда статистика может оказаться устаревшей, подсчитывая операции изменения данных с момента последнего обновления статистики и сравнивая количество изменений с пороговым значением. Пороговое значение основано на количестве строк в таблице или индексированном представлении.
Оптимизатор запросов проверяет наличие устаревшей статистики перед компиляцией запроса и выполняет кэшированный план запроса. Оптимизатор запросов с помощью столбцов, таблиц и индексированных представлений в предикате запроса определяет, какая статистика могла устареть. Оптимизатор запросов определяет эти сведения перед компиляцией запроса. Перед запуском кэшированного плана запроса ядро СУБД проверяет, ссылается ли план запроса на актуальную статистику.
Параметр AUTO_UPDATE_STATISTICS применяется к статистике, создаваемой для индексов и отдельных столбцов в предикатах запросов, и к статистике, создаваемой инструкцией CREATE STATISTICS. Этот параметр также применяется к отфильтрованной статистике.
Значение по умолчанию — ON. Для большинства баз данных рекомендуется использовать значение по умолчанию.
Используйте параметр AUTO_UPDATE_STATISTICS_ASYNC, чтобы указать режим обновления статистики: синхронный или асинхронный.
OFF
Указывает, что оптимизатор запросов не обновляет статистику, если она используется в запросе. Оптимизатор запросов также не обновляет статистику, когда она становится устаревшей. Отключение этого параметра может повлечь создание неоптимальных планов запросов и снижение производительности запросов.
You can determine this option's status by examining the is_auto_update_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoUpdateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the Database-wide statistics options" in Statistics.
AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ON
Указывает, что обновление статистики для параметра AUTO_UPDATE_STATISTICS выполняется асинхронно. Оптимизатор запросов не ожидает завершения обновления статистики перед компиляцией запросов.
Установка этого параметра в состояние ON не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в состояние ON.
По умолчанию параметр AUTO_UPDATE_STATISTICS_ASYNC имеет значение OFF, а оптимизатор запросов обновляет статистику в синхронном режиме.
OFF
Указывает, что обновление статистики для параметра AUTO_UPDATE_STATISTICS выполняется синхронно. Оптимизатор запросов ожидает завершения обновления статистики перед компиляцией запросов.
Note
Установка этого параметра в значение OFF не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в значение ON.
You can determine this option's status by examining the is_auto_update_stats_async_on
column in the sys.databases catalog view.
For more information that describes when to use synchronous or asynchronous statistics updates, see the "Statistics options" section in Statistics.
< > automatic_tuning_option ::=
Applies to: SQL Server (Starting with SQL Server 2017 (14.x))
Enables or disables FORCE_LAST_GOOD_PLAN
Automatic tuning option. Состояние этого параметра можно просмотреть в представлении sys.database_automatic_tuning_options
.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF }
DEFAULT
Значение по умолчанию для SQL Server — OFF.
ON
Ядро СУБД автоматически включает последний известный удачный план для Transact-SQL запросов, когда новый план запроса приводит к снижению производительности. Ядро СУБД непрерывно отслеживает производительность запроса Transact-SQL в форсированном плане.
При наличии повышения производительности ядро СУБД продолжает использовать последний известный хороший план. Если повышение производительности не обнаружено, ядро СУБД создает новый план запроса. The statement fails if the Query Store isn't enabled or if the Query Store isn't in Read-Write mode.
OFF
The Database Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. Однако эти рекомендации не применяются автоматически. Пользователь может отслеживать активные рекомендации и устранять выявленные проблемы, применяя сценарии Transact-SQL, которые отображаются в представлении. Значение по умолчанию — OFF.
< > change_tracking_option ::=
Applies to: SQL Server and Azure SQL Database
Определяет параметры отслеживания изменений. Отслеживание изменений можно включить или отключить, а также установить или изменить параметры. For examples, see the Examples section later in this article.
ON
Включает отслеживание изменений для базы данных. При включении отслеживания изменений также необходимо задать параметры AUTO CLEANUP и CHANGE RETENTION.
AUTO_CLEANUP = { ON | OFF }
ON
Данные отслеживания изменений автоматически удаляются по истечении заданного срока хранения.
OFF
Данные отслеживания изменений не удаляются из базы данных автоматически.
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
Указывает минимальный срок хранения данных отслеживания изменений в базе данных. Данные удаляются, только если для параметра AUTO_CLEANUP установлено значение ON.
retention_period is an integer that specifies the numerical component of the retention period.
The default retention period is 2 days. Минимальный срок хранения составляет 1 минуту. The default retention type is DAYS.
Значение OFF отключает отслеживание изменений для базы данных. Перед отключением отслеживания изменений для базы данных предварительно отключите отслеживание изменений для всех таблиц.
< > containment_option ::=
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Управляет параметрами автономной работы базы данных.
CONTAINMENT = { NONE | PARTIAL}
NONE
База данных не является автономной.
PARTIAL
Это автономная база данных. Если в базе данных включена репликация, запись измененных данных или отслеживание изменений, установка хранилища данных на частичное сбой. Проверка на наличие ошибок прекращается после обнаружения первой ошибки. For more information about contained databases, see Contained Databases.
< > cursor_option ::=
Управляет параметрами курсора.
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ON
Любые курсоры, открытые при фиксации или откате транзакции, закрываются.
OFF
Курсоры остаются открытыми при фиксации транзакции; откат транзакции закрывает все курсоры, за исключением курсоров, определенных как INSENSITIVE или STATIC.
Настройки уровня соединения, которые установлены с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для CURSOR_CLOSE_ON_COMMIT. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая CURSOR_CLOSE_ON_COMMIT в значение OFF для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET CURSOR_CLOSE_ON_COMMIT.
You can determine this option's status by examining the is_cursor_close_on_commit_on
column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled
property of the DATABASEPROPERTYEX function.
CURSOR_DEFAULT { LOCAL | GLOBAL }
Applies to: SQL Server
Управляет тем, какую область (LOCAL или GLOBAL) использует курсор.
LOCAL
Когда вы указываете область LOCAL и не определяете курсор как GLOBAL при его создании, область действия курсора является локальной. В частности, область действия является локальной по отношению к пакету, хранимой процедуре или триггеру, в котором вы создали курсор. Имя курсора действительно только внутри этой области.
На курсор могут ссылаться локальные переменные пакета, хранимые процедуры, триггеры или выходной параметр хранимой процедуры. Курсор будет неявно освобожден при завершении пакета, хранимой процедуры или триггера. Курсор освобождается, если он не был передан обратно в параметре OUTPUT. Курсор может передаваться обратно в параметре OUTPUT. Если курсор передается таким образом, он будет освобожден, когда последняя переменная, которая ссылается на него, будет освобождена или выйдет из области.
GLOBAL
Если параметр GLOBAL задан и курсор во время создания не определен как LOCAL, то область курсора глобальна относительно соединения. Имя курсора может использоваться любой хранимой процедурой или пакетом, которые выполняются в соединении.
Курсор неявно освобождается только при отключении. For more information, see DECLARE CURSOR.
You can determine this option's status by examining the is_local_cursor_default
column in the sys.databases catalog view. You can also determine the status by examining the IsLocalCursorsDefault
property of the DATABASEPROPERTYEX function.
< > temporal_history_retention ::=
TEMPORAL_HISTORY_RETENTION { ON | OFF }
По умолчанию используется флаг ON, но после операции восстановления на определенный момент времени автоматически устанавливается флаг OFF. Дополнительные сведения о том, как включить этот параметр, см. в разделе Настройка политики хранения.
ON
Default. Включает политику хранения темпоральной таблицы. Дополнительные сведения см. в статье Управление хранением данных журнала в темпоральных таблицах с системным управлением версиями.
OFF
Не выполняйте темпоральную политику хранения.
< > data_retention_policy ::=
Applies to: Azure SQL Edge only.
DATA_RETENTION { ON | OFF }
ON
Включает очистку базы данных на основе политики хранения данных.
OFF
Отключает очистку базы данных на основе политики хранения данных.
<database_mirroring>
Applies to: SQL Server
Описания аргументов см. в статье Зеркальное отображение базы данных ALTER DATABASE (Transact-SQL).
< > date_correlation_optimization_option ::=
Applies to: SQL Server
Управляет параметром date_correlation_optimization.
DATE_CORRELATION_OPTIMIZATION { ON | OFF }
ON
SQL Server maintains correlation statistics where a FOREIGN KEY constraint links any two tables in the database and the tables have datetime columns.
OFF
Статистика корреляции не поддерживается.
Для установки параметра DATE_CORRELATION_OPTIMIZATION в состояние ON не должно быть активных соединений с базой данных (за исключением соединения, в котором выполняется инструкция ALTER DATABASE). Впоследствии возможность нескольких соединений будет поддерживаться.
The current setting of this option can be determined by examining the is_date_correlation_on
column in the sys.databases catalog view.
< > db_encryption_option ::=
Определяет параметры шифрования базы данных.
ENCRYPTION { ON | OFF | ПРИОСТАНОВКА | РЕЗЮМЕ }
ON
Включает шифрование базы данных.
OFF
Отключает шифрование базы данных.
SUSPEND
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Можно использовать для приостановки проверки шифрования после включения или отключения прозрачного шифрования или после изменения ключа шифрования.
RESUME
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Позволяет возобновить ранее приостановленное сканирование шифрования.
Дополнительные сведения о шифровании баз данных см. в прозрачного шифрования данных (TDE) и прозрачного шифрования данных для базы данных SQL Azure, управляемого экземпляра SQL Azure и Azure Synapse Analytics.
Если шифрование включено на уровне базы данных, все группы файлов шифруются. Все новые группы файлов наследуют зашифрованное свойство. Если для любой группы файлов в базе данных задано значение READ ONLY, операция шифрования базы данных завершается ошибкой.
You can see the encryption state of the database and the state of the encryption scan by using the sys.dm_database_encryption_keys dynamic management view.
< > db_state_option ::=
Applies to: SQL Server
Управляет состоянием базы данных.
OFFLINE
База данных аккуратно закрыта и помечена как вне сети. В автономном режиме базу данных невозможно изменить.
ONLINE
База данных открыта и доступна для использования.
EMERGENCY
База данных помечена как READ_ONLY, ведение журнала отключено и доступ возможен только элементам предопределенной роли сервера sysadmin. EMERGENCY используется в основном для диагностики. Например, база данных, помеченная как подозрительная из-за поврежденного файла журнала, может быть переведена в состояние EMERGENCY. Таким образом, системный администратор может получить доступ к базе данных только для чтения. Только члены предопределенной роли сервера sysadmin могут перевести базу данных в состояние EMERGENCY.
Разрешение ALTER DATABASE
для базы данных необходимо для перевода базы данных из режима "вне сети" в режим "аварийный", а разрешение ALTER ANY DATABASE
на уровне сервера — для перевода базы данных из режима "вне сети" в режим "в сети".
You can determine this option's status by examining the state
and state_desc
columns in the sys.databases catalog view. You can also determine the status by examining the Status
property of the DATABASEPROPERTYEX function. For more information, see Database States.
База данных, находящаяся в состоянии RESTORING, не может быть переведена в состояние OFFLINE, ONLINE или EMERGENCY. База данных может находиться в состоянии RESTOREING во время активной операции восстановления или при сбое операции восстановления базы данных или файла журнала из-за поврежденного файла резервной копии.
< > db_update_option ::=
Управляет разрешениями на обновления базы данных.
READ_ONLY
Пользователи могут считывать данные из базы данных, но не могут изменять их.
Note
Для улучшения производительности запросов выполните обновление статистики перед тем, как перевести базу данных в режим доступа READ_ONLY. Если после READ_ONLY базы данных требуется дополнительная статистика, ядро СУБД создает статистику в системной базе данных
tempdb
. For more information about statistics for a read-only database, see Statistics.READ_WRITE
База данных доступна для операций чтения и записи.
Чтобы изменить это состояние, необходимо обладать монопольным доступом к базе данных. Дополнительные сведения см. в описании предложения SINGLE_USER.
Note
В База данных SQL Azure федеративных базах данных SET { READ_ONLY | READ_WRITE }
отключен.
< > db_user_access_option ::=
Управляет пользовательским доступом к базе данных.
SINGLE_USER
Applies to: SQL Server
Указывает, что только один пользователь одновременно может обращаться к базе данных. Если указан параметр SINGLE_USER и заданы другие подключения пользователей к базе данных, инструкция ALTER DATABASE будет заблокирована, пока все пользователи не отключатся от указанной базы данных. Чтобы переопределить это поведение, см. описание предложения WITH <termination>.
База данных остается в SINGLE_USER режиме, даже если пользователь, задал параметр, выходит из него. На этом этапе другой пользователь, но только один, может подключиться к базе данных.
Перед заданием параметра SINGLE_USER проверьте, чтобы параметру AUTO_UPDATE_STATISTICS_ASYNC было присвоено значение OFF. Если задано значение ON, фоновый поток, используемый для обновления статистики, принимает подключение к базе данных, и вы не можете получить доступ к базе данных в однопользовательском режиме. To view the status of this option, query the is_auto_update_stats_async_on
column in the sys.databases catalog view. Если параметр установлен в значение ON, выполните следующие действия.
Установите AUTO_CREATE_STATISTICS_ASYNC в значение OFF.
Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.
При наличии активных задач следует либо разрешить завершение задач, либо вручную отменить их при помощи инструкции KILL STATS JOB.
RESTRICTED_USER
Позволяет подключаться к базе данных только членам предопределенной роли базы данных db_owner
и предопределенной роли сервера dbcreator
и sysadmin
. Параметр RESTRICTED_USER не ограничивает их количество. Отключите все соединения с базой данных на период времени, определяемый завершающим предложением инструкции ALTER DATABASE. После того как база данных перешла в состояние RESTRICTED_USER, попытки подключения пользователей, не соответствующими описанным выше условиям, будут отклонены.
MULTI_USER
Все пользователи, имеющие соответствующие разрешения на подключение к базе данных, будут допущены к базе данных. You can determine this option's status by examining the user_access
column in the sys.databases catalog view. You can also determine the status by examining the UserAccess
property of the DATABASEPROPERTYEX function.
< > delayed_durability_option ::=
Applies to: SQL Server (Starting with SQL Server 2014 (12.x))
Управляет тем, является ли фиксация транзакций полностью устойчивой или отложенной устойчивой.
DISABLED
Все транзакции, следующие за
SET DISABLED
, являются полностью устойчивыми. Все параметры устойчивости, заданные в блоке ATOMIC или инструкции COMMIT, не учитываются.ALLOWED
Все транзакции, следующие за
SET ALLOWED
, являются полностью устойчивыми или отложенными устойчивыми в зависимости от параметра устойчивости, заданного в блоке ATOMIC или инструкции COMMIT.FORCED
Все транзакции, следующие за
SET FORCED
, являются отложенными устойчивыми. Все параметры устойчивости, заданные в блоке ATOMIC или инструкции COMMIT, не учитываются.
< > external_access_option ::=
Applies to: SQL Server
Управляет возможностью обращения к базе данных из внешних ресурсов, таких как объекты другой базы данных.
DB_CHAINING { ON | OFF }
ON
База данных может быть источником или целевой базой данных межбазовой цепочки владения.
OFF
База данных не может быть членом межбазовой цепочки владения.
Important
Экземпляр SQL Server распознает этот параметр, если параметр сервера цепочки владения между базами данных имеет значение 0 (OFF). Если параметр cross db ownership chaining имеет значение 1 (ON), то все пользовательские базы данных могут участвовать в межбазовых цепочках владения, вне зависимости от значения этого параметра. This option is set by using sp_configure.
Для установки этого параметра требуется разрешение CONTROL SERVER
для базы данных.
Параметр DB_CHAINING нельзя установить для системных баз данных master
, model
и tempdb
.
You can determine this option's status by examining the is_db_chaining_on
column in the sys.databases catalog view.
НАДЕЖНЫЙ { ON | OFF }
ON
Модули базы данных (например, определяемые пользователем функции или хранимые процедуры), которые используют контекст олицетворения, могут обращаться к ресурсам, находящимся вне базы данных.
OFF
Модули базы данных в контексте олицетворения не могут обращаться к ресурсам, находящимся вне базы данных.
Параметр TRUSTWORTHY устанавливается в значение OFF при каждом присоединении базы данных.
По умолчанию для всех системных баз данных, кроме msdb
, для параметра TRUSTWORTHY задано значение OFF. Это значение не может быть изменено для баз данных model
и tempdb
. Рекомендуется никогда не задавать значение ON для параметра TRUSTWORTHY базы данных master
.
Для установки этого параметра требуется разрешение CONTROL SERVER
для базы данных.
You can determine this option's status by examining the is_trustworthy_on
column in the sys.databases catalog view.
DEFAULT_FULLTEXT_LANGUAGE
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Задает язык, используемый по умолчанию для полнотекстовых индексированных столбцов.
Important
Этот параметр допустим только в случае, если параметр CONTAINMENT равен PARTIAL. Если параметр CONTAINMENT имеет значение NONE, возникают ошибки.
DEFAULT_LANGUAGE
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Указывает язык, используемый по умолчанию для всех созданных имен входа. Чтобы задать язык, можно указать локальный идентификатор (lcid), название языка или псевдоним языка. For a list of acceptable language names and aliases, see sys.syslanguages. Этот параметр допустим только в случае, если параметр CONTAINMENT равен PARTIAL. Если параметр CONTAINMENT имеет значение NONE, возникают ошибки.
NESTED_TRIGGERS
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Указывает, допустимо ли каскадирование триггеров AFTER, то есть выполнение действия, вызывающего срабатывание другого триггера, который может инициировать другой триггер и т. д. Этот параметр допустим только в случае, если параметр CONTAINMENT равен PARTIAL. Если параметр CONTAINMENT имеет значение NONE, возникают ошибки.
TRANSFORM_NOISE_WORDS
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Используется для подавления сообщения об ошибке, если логическая операция по полнотекстовому запросу не срабатывает из-за пропускаемых слов или стоп-слов. Этот параметр допустим только в случае, если параметр CONTAINMENT равен PARTIAL. Если параметр CONTAINMENT имеет значение NONE, возникают ошибки.
TWO_DIGIT_YEAR_CUTOFF
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Указывает целое число в промежутке от 1753 до 9999, представляющее пороговое значение года для преобразования двухзначной записи лет в четырехзначную. Этот параметр допустим только в случае, если параметр CONTAINMENT равен PARTIAL. Если параметр CONTAINMENT имеет значение NONE, возникают ошибки.
< > FILESTREAM_option ::=
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Управляет параметрами таблиц FileTables.
NON_TRANSACTED_ACCESS = { ВЫКЛ | READ_ONLY | ПОЛНЫЙ }
OFF
Нетранзакционный доступ к данным таблиц FileTable отключен.
READ_ONLY
Данные FILESTREAM из таблиц FileTable в этой базе данных могут считываться нетранзакционными процессами.
FULL
Включает полный нетранзакционный доступ к данным FILESTREAM в таблицах FileTable.
DIRECTORY_NAME = <directory_name>
Имя каталога, совместимого с Windows. Это имя должно быть уникальным среди всех имен каталогов уровня базы данных в экземпляре SQL Server. Проверка уникальности выполняется без учета регистра, независимо от параметров сортировки. Этот параметр должен быть задан до создания таблицы FileTable в этой базе данных.
< > HADR_options ::=
Applies to: SQL Server
Дополнительные сведения см. в описании ALTER DATABASE SET HADR.
< > mixed_page_allocation_option ::=
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
Управляет возможностью базы данных создавать начальные страницы с использованием смешанного экстента для первых восьми страниц таблицы или индекса.
MIXED_PAGE_ALLOCATION { OFF | ON }
OFF
База данных всегда создает начальные страницы с помощью однородных экстентов. OFF — значение по умолчанию.
ON
База данных может создавать начальные страницы с помощью смешанных экстентов.
Этот параметр всегда включен для всех системных баз данных, кроме tempdb
, где он всегда отключен. Параметр нельзя изменить для системных баз данных.
< > PARAMETERIZATION_option ::=
Управляет параметром параметризации. Дополнительные сведения о параметризации: Руководство по архитектуре обработки запросов.
ПАРАМЕТРИЗАЦИЯ { SIMPLE | ПРИНУДИТЕЛЬНО }
SIMPLE
Запросы параметризуются на основании поведения базы данных по умолчанию.
FORCED
SQL Server параметризирует все запросы в базе данных.
The current setting of this option can be determined by examining the is_parameterization_forced
column in the sys.databases catalog view.
< > query_store_options ::=
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
ON | OFF [ (ПРИНУДИТЕЛЬНО) ] | CLEAR [ ALL ]
Указывает, включено ли хранилище запросов в этой базе данных, а также управляет удалением содержимого хранилища запросов. Дополнительные сведения: Сценарии использования хранилища запросов.
ON
Включает хранилище запросов.
Многие новые функции производительности SQL Server 2022 (16.x), такие как хранилище запросов подсказки, отзывы CE, отзывы о параллелизме (DOP) и сохраняемость памяти (MGF), необходимые для включения хранилище запросов. Для баз данных, которые были восстановлены из других экземпляров SQL Server и для тех баз данных, которые обновляются с обновления на месте до SQL Server 2022 (16.x), эти базы данных сохраняют предыдущие параметры хранилища запросов. Если в хранилище запросов могут возникнуть проблемы, администраторы могут использовать пользовательские политики отслеживания с
QUERY_CAPTURE_MODE = CUSTOM
. For examples of how to enable the Query Store with custom capture policy options, see the Examples section later in this article.OFF [ (ПРИНУДИТЕЛЬНО) ]
Отключает хранилище запросов. ПРИНУДИТЕЛЬНОе выполнение является необязательным. FORCED прерывает все выполняющиеся фоновые задачи хранилища запросов и пропускает синхронный сброс, когда хранилище запросов отключается. Приводит к максимально быстрому завершению работы хранилища запросов. ПРИНУДИТЕЛЬНО применяется к SQL Server 2016 (13.x) с пакетом обновления 2 (SP2) CU14, SQL Server 2017 (14.x) CU21, SQL Server 2019 (15.x) и более поздним сборкам.
Note
Хранилище запросов нельзя отключить в базе данных SQL Azure. Выполнение
ALTER DATABASE [database] SET QUERY_STORE = OFF
возвращает предупреждение'QUERY_STORE=OFF' is not supported in this version of SQL Server.
.CLEAR [ ALL ]
Удаляет данные, связанные с запросами, из хранилища запросов. ALL является необязательным. ALL удаляет данные и метаданные, связанные с запросами, из хранилища запросов.
OPERATION_MODE { READ_ONLY | READ_WRITE }
Описывает режим работы хранилища запросов.
READ_WRITE
Хранилище запросов собирает и сохраняет план запроса и статистические данные о выполнении.
READ_ONLY
Можно считывать данные из хранилища запросов, но новые сведения не добавляются. Если максимальное выданное пространство хранилища запросов было исчерпано, хранилище запросов изменяет режим работы на READ_ONLY.
CLEANUP_POLICY
Описывает политику хранения данных хранилища запросов. STALE_QUERY_THRESHOLD_DAYS определяет количество дней хранения сведений о запросе в хранилище. STALE_QUERY_THRESHOLD_DAYS is type bigint. Значение по умолчанию — 30.
DATA_FLUSH_INTERVAL_SECONDS
Определяет частоту, с которой данные, записанные в хранилище запросов, сохраняются на диск. Для оптимизации производительности данные, собранные хранилищем запросов, асинхронно записываются на диск. Для настройки частоты этой асинхронной передачи используется аргумент DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is type bigint. The default value is 900 (15 min).
MAX_STORAGE_SIZE_MB
Определяет свободное место, выделенное для хранилища запросов. MAX_STORAGE_SIZE_MB is type bigint. The default value is 100 MB for SQL Server (SQL Server 2016 (13.x) through SQL Server 2017 (14.x)). Starting with SQL Server 2019 (15.x), the default value is 1000 MB.
Ограничение MAX_STORAGE_SIZE_MB
не применяется строго. Размер хранилища проверяется только в том случае, если хранилище запросов записывает данные на диск. Этот интервал задается параметром DATA_FLUSH_INTERVAL_SECONDS
или параметром диалогового окна хранилища запросов Management Studio Интервал записи данных на диск. Значение по умолчанию — 900 секунд (или 15 минут).
Если хранилище запросов нарушило ограничение MAX_STORAGE_SIZE_MB
между проверками размера хранилища, оно переходит в режим только для чтения. Если параметр SIZE_BASED_CLEANUP_MODE
включен, также активируется механизм очистки для принудительного применения ограничения MAX_STORAGE_SIZE_MB
.
После очистки достаточного пространства режим хранилища запросов автоматически переключается на чтение и запись.
Important
If you think that your workload capture needs more than 10 GB of disk space, you should probably rethink and optimize your workload to reuse query plans (for example using forced parameterization, or adjust the Query Store configurations.
Начиная с SQL Server 2019 (15.x) и в База данных SQL Azure можно задать QUERY_CAPTURE_MODE
значение CUSTOM для дополнительного управления политикой отслеживания запросов.
INTERVAL_LENGTH_MINUTES
Определяет временной интервал вычисления статистических данных о среде выполнения в хранилище запросов. Для оптимизации использования свободного места статистические данные о среде выполнения в хранилище вычисляются для фиксированного временного интервала. Этот интервал настраивается с помощью аргумента INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is type bigint. The default value is 60.
SIZE_BASED_CLEANUP_MODE { AUTO | OFF }
Определяет, активируется ли очистка автоматически, когда общий объем данных приблизится к верхней границе ограничения.
AUTO
Size-based cleanup is automatically activated when size on disk reaches 90% of MAX_STORAGE_SIZE_MB. Эта очистка сначала удаляет самые дешевые и самые старые запросы. It stops at approximately 80% of MAX_STORAGE_SIZE_MB. Это значение является значением конфигурации по умолчанию.
OFF
Очистка на основе размера не активируется автоматически.
SIZE_BASED_CLEANUP_MODE is type nvarchar.
QUERY_CAPTURE_MODE { ALL | AUTO | CUSTOM | NONE }
Определяет режим записи текущего активного запроса. В каждом режиме определяются собственные политики записи. QUERY_CAPTURE_MODE is type nvarchar.
Note
Курсоры, запросы в хранимых процедурах и скомпилированные в собственном коде запросы всегда записываются, если задан режим записи запроса ALL, AUTO или CUSTOM.
ALL
Записывает все запросы. ALL is the default configuration value for SQL Server (SQL Server 2016 (13.x) through SQL Server 2017 (14.x)).
AUTO
Записываются соответствующие запросы на основе показателя выполнения и объема потребления ресурсов. Это значение конфигурации по умолчанию для SQL Server (начиная с SQL Server 2019 (15.x)) и База данных SQL Azure.
NONE
Запись новых запросов останавливается. Хранилище запросов продолжает собирать статистику компиляции и среды выполнения для запросов, которые уже были записаны. Используйте эту конфигурацию с осторожностью, так как вы можете пропустить запись важных запросов.
CUSTOM
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Allows control over the QUERY_CAPTURE_POLICY options. Пользовательские политики записи могут помочь хранилищу запросов записывать наиболее важные запросы в рабочей нагрузке. Сведения о настраиваемых параметрах см. в <query_capture_policy_option_list>.
MAX_PLANS_PER_QUERY
Определяет максимальное количество поддерживаемых планов для каждого запроса. MAX_PLANS_PER_QUERY is type int. The default value is 200.
WAIT_STATS_CAPTURE_MODE { ON | OFF }
Applies to: SQL Server (Starting with SQL Server 2017 (14.x)))
Определяет, фиксируются ли статистические данные ожидания для каждого запроса.
ON
Информация о статистике ожидания по запросам отслеживается. Это значение является значением конфигурации по умолчанию.
OFF
Данные статистики ожидания для каждого запроса не записываются.
< > query_capture_policy_option_list :: =
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
Controls the Query Store capture policy options. За исключением STALE_CAPTURE_POLICY_THRESHOLD, эти параметры определяют условия OR, которые должны выполняться для запросов, записываемых в определенное пороговое значение устаревшей политики записи.
Начиная с SQL Server 2019 (15.x), QUERY_CAPTURE_MODE = AUTO
параметр фиксирует хранилище запросов подробности при достижении любого из следующих пороговых значений:
- EXECUTION_COUNT = 30 выполнений = число выполнений
- TOTAL_COMPILE_CPU_TIME_MS = 1 секунда = время компиляции в миллисекундах
- TOTAL_EXECUTION_CPU_TIME_MS = 100 мс = время ЦП на выполнение в миллисекундах
For example:
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
Для настройки этих параметров можно использовать QUERY_CAPTURE_MODE = CUSTOM
:
STALE_CAPTURE_POLICY_THRESHOLD = integer { DAYS | HOURS }
Определяет период интервала ознакомления для определения того, нужно ли записать запрос. Значение по умолчанию — 1 день, можно указать от 1 часа до 7 дней.
EXECUTION_COUNT = integer
Определяет количество выполнений запроса в течение ознакомительного периода. Значение по умолчанию — 30, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен быть выполнен по меньшей мере 30 раз за один день, чтобы быть сохраненным в хранилище запросов. EXECUTION_COUNT is type int.
TOTAL_COMPILE_CPU_TIME_MS = integer
Определяет общее время ЦП, затраченное на компиляцию, которое запрос использовал за ознакомительный период. Значение по умолчанию — 1000, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен иметь общее время ЦП, затраченное на компиляцию, не менее одной секунды за один день, чтобы быть сохраненным в хранилище запросов. TOTAL_COMPILE_CPU_TIME_MS is type int.
TOTAL_EXECUTION_CPU_TIME_MS = integer
Определяет общее время ЦП, затраченное на выполнение, которое запрос использовал за ознакомительный период. Значение по умолчанию — 100, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен иметь общее время ЦП, затраченное на выполнение, не менее 100 мс за один день, чтобы быть сохраненным в хранилище запросов. TOTAL_EXECUTION_CPU_TIME_MS is type int.
< > recovery_option ::=
Applies to: SQL Server
Управляет параметрами восстановления базы данных и проверкой ошибок дискового ввода-вывода.
FULL
Обеспечивает полное восстановление после отказа носителя с помощью резервных копий журнала транзакций. Если файл данных поврежден, восстановление носителя может восстановить все зафиксированные транзакции. For more information, see Recovery models.
BULK_LOGGED
Обеспечивает восстановление после сбоя носителя. Объединяет оптимальную производительность и минимальный объем пространства, занимаемого журналами; используется для больших систем или массовых операций. Сведения о том, какие операции можно регистрировать минимально, см. в разделе журнал транзакций. В модели восстановления BULK_LOGGED ведение журнала для этих операций минимально. For more information, see Recovery models.
SIMPLE
Предусматривается стратегия простого резервирования, которая использует минимальное пространство под журналы. Пространство, отведенное под журналы, может быть автоматически многократно использовано, если оно больше не требуется для восстановления сбоев сервера. For more information, see Recovery models.
Important
Простая модель восстановления проще в управлении, чем другие две модели, но больше подвержена потере данных, если файл данных поврежден. Все изменения, начиная с наиболее свежей резервной копии базы данных или разностной резервной копии базы данных, будут потеряны и должны быть повторно введены вручную.
Модель восстановления по умолчанию определяется моделью восстановления системной базы данных model
. For more information about selecting the appropriate recovery model, see Recovery models.
You can determine this option's status by examining the recovery_model
and recovery_model_desc
columns in the sys.databases catalog view. You can also determine the status by examining the Recovery
property of the DATABASEPROPERTYEX function.
TORN_PAGE_DETECTION { ON | OFF }
ON
Неполные страницы можно обнаружить ядро СУБД.
OFF
Неполные страницы не могут быть обнаружены ядро СУБД.
Important
Структура синтаксиса TORN_PAGE_DETECTION ON | OFF будет удален в будущей версии SQL Server. Избегайте использования этой структуры в новых разработках и запланируйте изменение приложений, которые сейчас ее используют. Вместо этого используйте параметр PAGE_VERIFY.
PAGE_VERIFY { КОНТРОЛЬНАЯ СУММА | TORN_PAGE_DETECTION | NONE }
Обнаруживает поврежденные страницы базы данных, вызванные ошибками пути дискового ввода-вывода. Ошибки пути дисковых операций ввода-вывода могут быть причиной повреждения базы данных. Эти ошибки чаще всего вызваны сбоями питания или сбоями оборудования диска, которые происходят во время записи страницы на диск.
CHECKSUM
Вычисляет контрольную сумму по содержимому целой страницы и сохраняет полученное значение в ее заголовке при записи страницы на диск. При чтении страницы с диска контрольная сумма вычисляется повторно и сравнивается с сохраненным в заголовке страницы значением. Если значения не совпадают, сообщение об ошибке 824 (указывающее на сбой контрольной суммы) сообщается как в журнале ошибок SQL Server, так и в журнале событий Windows. Ошибка контрольной суммы указывает на проблему пути ввода-вывода. Чтобы определить первопричину, необходимо исследовать оборудование, драйверы встроенного ПО, BIOS, фильтрующее программное обеспечение (например, антивирусное) и другие компоненты ввода-вывода.
TORN_PAGE_DETECTION
Сохраняет определенный двухбитовый шаблон для каждого 512-байтового сектора в 8-килобайтной (КБ) странице базы данных и сохраняет в базе данных заголовок страницы при записи страницы на диск. При чтении страницы с диска биты разрыва, хранимые в заголовке страницы, сравниваются с действительными сведениями о секторах страницы.
Несовпадающие значения указывают, что только часть страницы была записана на диск. В этой ситуации сообщение об ошибке 824 (указывающее на ошибку разорванной страницы) сообщается как журналу ошибок SQL Server, так и журналу событий Windows. Разорванные страницы обычно обнаруживаются при восстановлении базы данных, если они действительно не полностью записаны. Однако другие сбои пути ввода-вывода могут стать причиной разрыва страницы в любое время.
NONE
Записи на странице базы данных не создают значение CHECKSUM или TORN_PAGE_DETECTION. SQL Server не проверяет контрольную сумму или разорванную страницу во время чтения, даже если значение КОНТРОЛЬНОЙ суммы или TORN_PAGE_DETECTION присутствует в заголовке страницы.
Рассмотрите следующие важные моменты при использовании параметра PAGE_VERIFY.
The default is CHECKSUM.
При обновлении пользовательской или системной базы данных до SQL Server 2005 (9.x) или более поздней версии значение PAGE_VERIFY (NONE или TORN_PAGE_DETECTION) не изменяется. Рекомендуется изменить его на CHECKSUM.
Note
В более ранних версиях SQL Server параметр базы данных PAGE_VERIFY имеет значение NONE для
tempdb
базы данных и не может быть изменен. Начиная с SQL Server 2008 (10.0.x), значением по умолчанию для базы данных является КОНТРОЛЬНАЯ СУММА дляtempdb
новых установок SQL Server. При обновлении установки SQL Server значение по умолчанию остается NONE. Этот параметр можно изменять. Для базы данныхtempdb
рекомендуется использовать значение CHECKSUM.TORN_PAGE_DETECTION может использовать меньше ресурсов, но обеспечивает минимальное подмножество защиты КОНТРОЛЬНОЙ суммы.
Аргумент PAGE_VERIFY можно установить, не производя перевод базы данных в режим "вне сети", блокировку или прочие действия, нарушающие ее параллелизм.
Значения CHECKSUM и TORN_PAGE_DETECTION являются взаимоисключающими. Оба параметра не могут быть включены одновременно.
При обнаружении ошибки разрыва страницы или контрольной суммы ее можно устранить с помощью восстановления из копии или потенциального перестроения индекса, если сбой ограничен только страницами индекса. При обнаружении ошибки контрольной суммы выполните инструкцию DBCC CHECKDB, чтобы определить тип поврежденной страницы базы данных. For more information about restore options, see RESTORE Arguments. Хотя восстановление данных устраняет проблему повреждения данных, первопричина (например, сбой оборудования диска) должна быть диагностирована и исправлена как можно скорее, чтобы предотвратить продолжающиеся ошибки.
SQL Server повторяет любое чтение, которое завершается сбоем с контрольной суммой, разорванной страницей или другой ошибкой ввода-вывода четыре раза. Если чтение выполнено успешно в любой из повторных попыток, сообщение записывается в журнал ошибок. Команда, активировающая чтение, продолжается. Команда завершается ошибкой с сообщением 824, если попытка повтора завершается ошибкой.
Дополнительные сведения о сообщениях об ошибках 823, 824 и 825 см. в разделе:
- Устранение ошибки MSSQLSERVER 823
- Устранение ошибки MSSQLSERVER 824
- устранение ошибки MSSQLSERVER 825 (повторная попытка чтения).
The current setting of this option can be determined by examining the page_verify_option
column in the sys.databases catalog view or the IsTornPageDetectionEnabled
property of the DATABASEPROPERTYEX function.
< > remote_data_archive_option ::=
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
Включает или отключает Stretch Database для базы данных. For more info, see Stretch Database.
Important
Stretch Database устарел в SQL Server 2022 (16.x) и База данных SQL Azure. Эта функция будет удалена в будущей версии ядро СУБД. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
REMOTE_DATA_ARCHIVE = { ON ( SERVER <= server_name>, { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } ) | ОТ
ON
Включает Stretch Database для базы данных. Дополнительные сведения, включая предварительные условия, см. в разделе Включение Stretch Database для базы данных.
Для включения службы Stretch Database для таблицы требуется разрешение
db_owner
. Для включения службы Stretch Database для базы данных требуются разрешенияdb_owner
иCONTROL DATABASE
.SERVER = <server_name>
Указывает адрес сервера Azure. Включает часть
.database.windows.net
имени. Например,MyStretchDatabaseServer.database.windows.net
.CREDENTIAL = <db_scoped_credential_name>
Указывает учетные данные базы данных, которые экземпляр SQL Server использует для подключения к серверу Azure. Перед выполнением этой команды убедитесь в наличии учетных данных. Дополнительные сведения см. в описании CREATE DATABASE SCOPED CREDENTIAL.
FEDERATED_SERVICE_ACCOUNT = { ON | OFF }
Вы можете использовать федеративную учетную запись службы для взаимодействия локального SQL Server с удаленным сервером Azure при выполнении следующих условий.
- Учетная запись службы, под которой работает экземпляр SQL Server, является доменной учетной записью.
- Учетная запись домена принадлежит домену, active Directory которого федеративно с идентификатором Microsoft Entra.
- Удаленный сервер Azure настроен для поддержки проверки подлинности Microsoft Entra.
- Учетная запись службы, под которой выполняется экземпляр SQL Server, должна быть настроена как учетная запись
dbmanager
илиsysadmin
на удаленном сервере Azure.
Если указано значение ON для федеративной учетной записи службы, невозможно также указать аргумент CREDENTIAL. Следует указать аргумент CREDENTIAL, если указано значение OFF.
OFF
Отключает Stretch Database для базы данных. Дополнительные сведения см. в разделе Отключение Stretch Database и возврат удаленных данных.
Отключить Stretch Database можно только после того, как база данных больше не будет содержать таблицы, которые включены для Stretch Database. После отключения Stretch Database перенос данных останавливается. Кроме того, результаты запроса больше не содержат результаты из удаленной таблицы.
Отключение Stretch Database не приводит к стиранию удаленной базы данных. Чтобы удалить удаленную базу данных, воспользуйтесь порталом Azure.
PERSISTENT_LOG_BUFFER
Applies to: SQL Server 2017 (14.x) and later.
При указании этого параметра буфер журнала транзакций создается на томе, расположенном на диске, поддерживаемом памятью класса хранилища (NVDIMM-N хранилищем, которое также называется постоянным буфером журнала. Дополнительные сведения см. в статье Ускорение задержки фиксации транзакций с помощью памяти класса хранилища и добавление буфера сохраняемого журнала в базу данных.
< > service_broker_option ::=
Applies to: SQL Server
Управляет следующими параметрами Service Broker: включает или отключает доставку сообщений, задает новый идентификатор Service Broker или задает приоритеты беседы в on или OFF.
ENABLE_BROKER
Указывает, что компонент Service Broker включен для указанной базы данных. Message delivery is started, and the is_broker_enabled
flag is set to true in the sys.databases catalog view. База данных сохраняет существующий идентификатор Service Broker. Service Broker не может быть включен, пока база данных является субъектом в конфигурации зеркального отображения базы данных.
Note
Параметр ENABLE_BROKER требует монопольной блокировки базы данных. Если другие сеансы заблокированы в базе данных, ENABLE_BROKER дождитесь, пока другие сеансы не отпустят свои блокировки. Чтобы включить Service Broker в пользовательской базе данных, убедитесь, что другие сеансы не используют базу данных перед выполнением ALTER DATABASE SET ENABLE_BROKER
инструкции, например путем размещения базы данных в одном пользовательском режиме. Чтобы включить Service Broker в msdb
базе данных, сначала остановите агент SQL Server, чтобы компонент Service Broker мог получить необходимую блокировку.
DISABLE_BROKER
Указывает, что компонент Service Broker отключен для указанной базы данных. Message delivery is stopped, and the is_broker_enabled
flag is set to false in the sys.databases catalog view. База данных сохраняет существующий идентификатор Service Broker.
NEW_BROKER
Указывает, что база данных должна получить новый идентификатор посредника. База данных действует как новый посредник службы. Все существующие сеансы связи в базе данных будут немедленно удалены, не выдавая диалоговых сообщений о завершении. Любой маршрут, ссылающийся на старый идентификатор Service Broker, должен быть повторно создан с новым идентификатором.
ERROR_BROKER_CONVERSATIONS
Указывает, что включена доставка сообщений Service Broker. Этот параметр сохраняет существующий идентификатор Service Broker для базы данных. Service Broker завершает все беседы в базе данных ошибкой. Параметр дает возможность приложениям выполнять регулярную очистку существующих диалогов.
HONOR_BROKER_PRIORITY { ON | OFF }
ON
Операции Send выполняются с учетом уровней приоритета, присвоенных диалогам. Сообщения от диалогов с высокими уровнями приоритета отправляются раньше сообщений от диалогов с низким приоритетом.
OFF
Операции Send выполняются, как если бы все диалоги имели приоритет по умолчанию.
Изменение параметра HONOR_BROKER_PRIORITY имеет мгновенный эффект для новых диалогов или диалогов, ожидающих отправки сообщений. Диалоговые окна с сообщениями, отправляемыми при запуске ALTER DATABASE, не выбирают новый параметр, пока некоторые сообщения для диалогового окна не будут отправлены. Время, необходимое для начала использования нового значения всеми диалогами, может значительно изменяться.
The current setting of this property is reported in the is_broker_priority_honored
column in the sys.databases catalog view.
< > snapshot_option ::=
Вычисляет уровень изоляции транзакции.
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ON
Включает параметр моментальных снимков на уровне базы данных. Если параметр включен, инструкции DML начинают создавать версии строк, даже если ни одна транзакция не использует изоляцию моментальных снимков. После установки этого параметра транзакции могут задавать уровень изоляции транзакций SNAPSHOT. Если транзакция выполняется на уровне изоляции SNAPSHOT, всем инструкциям видны данные из моментального снимка в состоянии, которое существовало в момент начала транзакции. Если транзакция выполняется с уровнем изоляции SNAPSHOT и обращается к данным нескольких баз данных, то либо параметр ALLOW_SNAPSHOT_ISOLATION должен быть установлен в состояние ON во всех базах данных, либо каждая инструкция в транзакции должна использовать подсказки блокировки при любом обращении предложения FROM к таблице базы данных, в которой параметр ALLOW_SNAPSHOT_ISOLATION установлен в состояние OFF.
OFF
Отключает параметр моментальных снимков на уровне базы данных. Транзакции не могут указывать уровень изоляции SNAPSHOT.
Если вы изменяете состояние ALLOW_SNAPSHOT_ISOLATION (из ON в OFF или из OFF в ON), инструкция ALTER DATABASE не возвращает управление вызвавшей ее программе, пока все существующие транзакции в базе данных не будут зафиксированы. Если база данных уже находится в состоянии, указанном в инструкции ALTER DATABASE, управление вызвавшей программе будет возвращено немедленно. If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Если инструкция ALTER DATABASE отменена, база данных останется в состоянии, в котором она находилась при запуске ALTER DATABASE. The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Если snapshot_isolation_state_desc
= IN_TRANSITION_TO_ON, команда ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF
приостанавливает шесть секунд и повторяет операцию.
Изменить состояние ALLOW_SNAPSHOT_ISOLATION невозможно, если база данных находится в режиме OFFLINE.
Если ALLOW_SNAPSHOT_ISOLATION в базе данных READ_ONLY, параметр сохраняется, если база данных будет установлена в READ_WRITE.
Параметры ALLOW_SNAPSHOT_ISOLATION можно изменить для баз данных master
, model
, msdb
и tempdb
. Параметр сохраняется каждый раз, когда экземпляр ядро СУБД останавливается и перезапускается при изменении параметраtempdb
. Если изменить настройку для базы данных model
, эта настройка становится значением по умолчанию для всех вновь создаваемых баз данных, кроме tempdb
.
По умолчанию этот параметр равен ON для баз данных master
и msdb
.
The current setting of this option can be determined by examining the snapshot_isolation_state
column in the sys.databases catalog view.
READ_COMMITTED_SNAPSHOT { ON | OFF }
ON
Включает параметр уровня изоляции моментальных снимков READ COMMITTED на уровне базы данных. Если параметр включен, инструкции DML начинают создавать версии строк, даже если ни одна транзакция не использует изоляцию моментальных снимков. После включения этого параметра транзакции, указывающие уровень изоляции READ COMMITTED, используют управление версиями строк вместо блокировки. Данные моментального снимка видны всем инструкциям в состоянии, которое существовало на момент начала выполнения инструкции, если транзакция выполняется с уровнем изоляции READ COMMITTED.
OFF
Отключает параметр уровня изоляции моментальных снимков READ COMMITTED на уровне базы данных. Транзакции с уровнем изоляции READ COMMITTED используют блокировку.
Чтобы установить параметр READ_COMMITTED_SNAPSHOT в значение ON или OFF, с базой данных не должно быть активных соединений, за исключением соединения, выполняющего команду ALTER DATABASE. Однако это не означает, что база данных должна находиться в однопользовательском режиме. Изменить состояние этого параметра невозможно, если база данных находится в режиме OFFLINE.
Если вы устанавливаете READ_COMMITTED_SNAPSHOT в базе данных READ_ONLY, параметр сохраняется при последующем READ_WRITE базы данных.
Параметр READ_COMMITTED_SNAPSHOT не может иметь значение ON для системных баз данных master
, tempdb
или msdb
. Если изменить настройку для базы данных model
, эта настройка становится значением по умолчанию для всех вновь создаваемых баз данных, кроме tempdb
.
The current setting of this option can be determined by examining the is_read_committed_snapshot_on
column in the sys.databases catalog view.
Warning
При создании таблицы с УСТОЙЧИВОСТЬЮ = SCHEMA_ONLY, а READ_COMMITTED_SNAPSHOT впоследствии изменяется с помощью ALTER DATABASE, данные в таблице теряются.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
Applies to: SQL Server (Starting with SQL Server 2014 (12.x))
ON
Если уровень изоляции транзакции установлен в любое значение ниже SNAPSHOT, все интерпретированные операции Transact-SQL в таблицах, оптимизированных для памяти, выполняются с уровнем изоляции SNAPSHOT. Примеры уровней изоляции ниже, чем моментальный снимок — READ COMMITTED или READ UNCOMMITTED. Эти операции выполняются независимо от того, установлен ли уровень изоляции транзакции явно на уровне сеанса или неявно используется значение по умолчанию.
OFF
Не повышает уровень изоляции транзакции для интерпретированных операций Transact-SQL в таблицах, оптимизированных для памяти.
Изменить состояние MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT невозможно, если база данных находится в режиме OFFLINE.
Значение по умолчанию — OFF.
The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on
column in the sys.databases catalog view.
< > sql_option ::=
Управляет параметрами соответствия ANSI на уровне базы данных.
ANSI_NULL_DEFAULT { ON | OFF }
Определяет значение по умолчанию, NULL или NOT NULL, для столбцов определяемых пользователем типов CLR, для которых в инструкциях CREATE TABLE или ALTER TABLE не указана явно допустимость значений NULL. Столбцы, определенные с ограничениями, следуют правилам ограничений независимо от того, какой этот параметр может быть.
ON
Значение по умолчанию для неопределенного столбца — NULL.
OFF
Значение по умолчанию для неопределенного столбца — NOT NULL.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют настройки уровня базы данных по умолчанию для ANSI_NULL_DEFAULT. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_NULL_DEFAULT в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_NULL_DFLT_ON.
Для совместимости ANSI при установке параметра базы данных ANSI_NULL_DEFAULT в состояние ON изменяется значение по умолчанию базы данных на значение NULL.
You can determine this option's status by examining the is_ansi_null_default_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullDefault
property of the DATABASEPROPERTYEX function.
ANSI_NULLS { ON | OFF }
ON
Результатом любого сравнения со значением NULL будет UNKNOWN.
OFF
Сравнение значений, отличных от Юникода, с значением NULL, равное TRUE, если оба значения равны NULL.
Important
В будущей версии SQL Server ANSI_NULLS всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для ANSI_NULLS. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_NULLS в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_NULLS.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ANSI_NULLS также должен быть установлен в ON.
You can determine this option's status by examining the is_ansi_nulls_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullsEnabled
property of the DATABASEPROPERTYEX function.
ANSI_PADDING { ON | OFF }
ON
Строки перед преобразованием дополняются до одной и той же длины. Also padded to the same length before inserting to a varchar or nvarchar data type.
OFF
Inserts trailing blanks in character values into varchar or nvarchar columns. Also leaves trailing zeros in binary values that are inserted into varbinary columns. Значения не подгоняются под длину столбца.
Состояние OFF касается только определения новых столбцов.
Important
В будущей версии SQL Server ANSI_PADDING всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Рекомендуется всегда задавать для параметра ANSI_PADDING значение ON. При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр ANSI_PADDING должен быть установлен в ON.
char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. Конечные пробелы и нули отбрасываются, если параметр ANSI_PADDING имеет значение OFF. char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют настройки уровня базы данных по умолчанию для ANSI_PADDING. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_PADDING в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_PADDING.
You can determine this option's status by examining the is_ansi_padding_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiPaddingEnabled
property of the DATABASEPROPERTYEX function.
ANSI_WARNINGS { ON | OFF }
ON
В случае возникновения таких ситуаций, как деление на ноль, выдаются ошибки или предупреждения. Ошибки и предупреждения также возникают тогда, когда значения NULL появляются в агрегатных функциях.
OFF
Предупреждения не выводятся, а в таких ситуациях, как деление на ноль, возвращается NULL.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ANSI_WARNINGS должен быть установлен в ON.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для ANSI_WARNINGS. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_WARNINGS в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_WARNINGS.
You can determine this option's status by examining the is_ansi_warnings_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiWarningsEnabled
property of the DATABASEPROPERTYEX function.
ARITHABORT { ON | OFF }
ON
Запрос будет завершен, если во время его выполнения возникла ошибка переполнения или деления на ноль.
OFF
Когда возникает одна из этих ошибок, выводится предупреждающее сообщение. Запрос, пакет или транзакция продолжают выполняться, как если бы ошибки не произошло, даже если выводится предупреждение.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ARITHABORT должен быть установлен в ON.
You can determine this option's status by examining the is_arithabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsArithmeticAbortEnabled
property of the DATABASEPROPERTYEX function.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Дополнительные сведения см. в уровне совместимости ALTER DATABASE.
CONCAT_NULL_YIELDS_NULL { ON | OFF }
ON
Результатом операции объединения будет NULL, если любой из операндов — NULL. Например, объединение строки символов "Это" со значением NULL приведет к результату NULL вместо "Это".
OFF
Значение NULL будет обработано как пустая строка символов.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр CONCAT_NULL_YIELDS_NULL должен быть установлен в ON.
В предстоящих версиях SQL Server CONCAT_NULL_YIELDS_NULL всегда будет включено, а все приложения, явно устанавливающие параметр OFF, будут активировать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Настройки уровня соединения, которые установлены с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для CONCAT_NULL_YIELDS_NULL. По умолчанию клиенты ODBC и OLE DB выдают параметр инструкции SET уровня подключения CONCAT_NULL_YIELDS_NULL значение ON для сеанса при подключении к экземпляру SQL Server. For more information, see SET CONCAT_NULL_YIELDS_NULL.
You can determine this option's status by examining the is_concat_null_yields_null_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNullConcat
property of the DATABASEPROPERTYEX function.
NUMERIC_ROUNDABORT { ON | OFF }
ON
Если в выражении происходит потеря точности, будет сформирована ошибка.
OFF
Потеря точности вызывает сообщения об ошибках, а результат округляется до точности столбца или переменной, в которых сохраняется результат.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр NUMERIC_ROUNDABORT должен быть установлен в OFF.
You can determine the status of this option in the is_numeric_roundabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNumericRoundAbortEnabled
property of the DATABASEPROPERTYEX function.
QUOTED_IDENTIFIER { ON | OFF }
ON
Двойные кавычки могут использоваться для идентификаторов с разделителями.
Все строки, находящиеся в двойных кавычках, интерпретируются как идентификаторы объектов. Идентификаторы с разделителями не должны соответствовать правилам для идентификаторов Transact-SQL. Они могут быть ключевыми словами и включать символы, не разрешенные в идентификаторах Transact-SQL. Если двойная кавычка (
"
) является частью идентификатора, она может быть представлена двумя двойными кавычками (""
).OFF
Идентификаторы не могут быть заключены в кавычки и должны следовать всем правилам для идентификаторов Transact-SQL. Литералы могут разделяться как одинарными, так и двойными кавычками.
SQL Server также позволяет разделять идентификаторы квадратными скобками ([
и ]
). Идентификаторы в скобках могут использоваться всегда, независимо от значения параметра QUOTED_IDENTIFIER. For more information, see Database identifiers.
При создании таблицы параметр QUOTED IDENTIFIER всегда сохраняется как ON в метаданных таблицы. Параметр сохраняется, даже если при создании таблицы он был установлен на OFF.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для QUOTED_IDENTIFIER. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая QUOTED_IDENTIFIER в значение ON, по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET QUOTED_IDENTIFIER.
You can determine this option's status by examining the is_quoted_identifier_on
column in the sys.databases catalog view. You can also determine the status by examining the IsQuotedIdentifiersEnabled
property of the DATABASEPROPERTYEX function.
RECURSIVE_TRIGGERS { ON | OFF }
ON
Рекурсивное срабатывание триггеров AFTER разрешено.
OFF
You can determine this option's status by examining the
is_recursive_triggers_on
column in the sys.databases catalog view. You can also determine the status by examining theIsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
Note
Если параметр RECURSIVE_TRIGGERS установлен в состояние OFF, будет запрещена только прямая рекурсия. Чтобы отключить косвенную рекурсию, нужно установить параметр сервера nested triggers в состояние 0.
You can determine this option's status by examining the is_recursive_triggers_on
column in the sys.databases catalog view or the IsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
< > suspend_for_snapshot_backup ::=
Applies to: SQL Server (Starting with SQL Server 2022 (16.x))
Приостанавливает базы данных для резервного копирования моментальных снимков. Может определить группу одной или нескольких баз данных. Может назначить только режим копирования.
SET SUSPEND_FOR_SNAPSHOT_BACKUP = { ON | OFF }
Приостановка или отмена приостановки баз данных. Default OFF.
MODE = COPY_ONLY
Optional. Использует режим COPY_ONLY.
< > target_recovery_time_option ::=
Applies to: SQL Server (Starting with SQL Server 2012 (11.x))
Указывает частоту косвенных контрольных точек для каждой базы данных. Starting with SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates the database uses indirect checkpoints. Для старых версий значение по умолчанию равно 0, указывающее, что база данных использует автоматические контрольные точки, частота которой зависит от параметра интервала восстановления экземпляра сервера. Корпорация Майкрософт рекомендует 1 минуту для большинства систем.
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
target_recovery_time
Указывает максимальное время для восстановления определенной базы данных в случае сбоя. target_recovery_time is type int.
SECONDS
Indicates that target_recovery_time is expressed as the number of seconds.
MINUTES
Indicates that target_recovery_time is expressed as the number of minutes.
For more information about indirect checkpoints, see Database checkpoints.
OPTIMIZED_LOCKING { ON | OFF }
Applies to: SQL Server (Starting with SQL Server 2025 (17.x) Preview)
Enables optimized locking. Оптимизированная блокировка по умолчанию имеет значение OFF.
Чтобы задать OPTIMIZED_LOCKING ON или OFF, активные подключения к базе данных не должны быть, кроме подключения, выполняемого командой ALTER DATABASE. Однако это не означает, что база данных должна находиться в однопользовательском режиме. Вы не можете изменить состояние этого параметра, если база данных не имеет значение ONLINE.
ЗАВЕРШЕНИЕ< WITH >::=
Указывает, когда откатывать незавершенные транзакции при переходе базы данных из одного состояния в другое. Если предложение завершения опущено, инструкция ALTER DATABASE будет бесконечно ожидать блокировки базы данных. Может быть указано только одно предложение завершения, которое должно следовать за предложением SET.
Note
Не все параметры базы данных могут использоваться с предложением WITH <termination>. For more information, see the table under Setting options of the "Remarks" section of this article.
ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Указывает, нужно ли откатить транзакцию через указанное количество секунд или немедленно.
NO_WAIT
Указывает, что запрос завершается ошибкой, если запрошенное состояние базы данных или изменение параметра не может завершиться немедленно. Завершение работы сразу же означает завершение без ожидания фиксации транзакции или отката.
Set options
To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX
После установки параметра базы данных новое значение вступает в силу немедленно.
Вы можете изменить значения по умолчанию для любого из параметров базы данных для всех созданных баз данных. Для этого измените соответствующий параметр базы данных model
.
Не все параметры базы данных используют предложение WITH <termination> или могут быть указаны в сочетании с другими параметрами. В следующей таблице перечислены эти параметры.
Options category | Может быть указан с другими параметрами | Может использовать предложение WITH <termination> |
---|---|---|
<db_state_option> | Yes | Yes |
<db_user_access_option> | Yes | Yes |
<db_update_option> | Yes | Yes |
<delayed_durability_option> | Yes | Yes |
<external_access_option> | Yes | No |
<cursor_option> | Yes | No |
<auto_option> | Yes | No |
<sql_option> | Yes | No |
<recovery_option> | Yes | No |
<target_recovery_time_option> | No | Yes |
<database_mirroring_option> | No | No |
ALLOW_SNAPSHOT_ISOLATION | No | No |
READ_COMMITTED_SNAPSHOT | No | Yes |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT | Yes | Yes |
<service_broker_option> | Yes | No |
DATE_CORRELATION_OPTIMIZATION | Yes | Yes |
<parameterization_option> | Yes | Yes |
<change_tracking_option> | Yes | Yes |
<db_encryption_option> | Yes | No |
<accelerated_database_recovery> | No | Yes |
<optimized_locking> | No | Yes |
Кэш планов для экземпляра SQL Server очищается, задав один из следующих параметров:
OFFLINE
ONLINE
MODIFY_NAME
COLLATE
READ_ONLY
READ_WRITE
ИЗМЕНЕНИЕ ФАЙЛОВОЙ ГРУППЫ ПО УМОЛЧАНИЮ
ИЗМЕНЕНИЕ READ_WRITE ФАЙЛОВОЙ ГРУППЫ
ИЗМЕНЕНИЕ READ_ONLY ФАЙЛОВОЙ ГРУППЫ
Кроме того, кэш планов сбрасывается в следующих случаях:
- В базе данных включен параметр базы данных AUTO_CLOSE. Если отсутствуют ссылки соединений пользователя или базы данных, фоновая задача предпримет попытку закрыть и отключить базу данных автоматически.
- Выполняется несколько запросов в базе данных с параметрами по умолчанию. Затем база данных уничтожается.
- Моментальный снимок базы данных для базы данных-источника удален.
- Успешное перестроение журнала транзакций базы данных.
- Восстановление резервной копии базы данных.
- Отсоединение базы данных.
Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. Для каждого очищаемого хранилища кэша в кэше планов журнал ошибок SQL Server содержит следующее информационное сообщение: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations
Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени.
Examples
A. Установка параметров для базы данных
В следующем примере задается модель восстановления и параметры проверки страницы данных для образца базы данных AdventureWorks2022
.
USE master;
GO
ALTER DATABASE [database_name]
SET RECOVERY FULL PAGE_VERIFY CHECKSUM;
GO
B. перевод базы данных в состояние READ_ONLY;
Для изменения состояния базы данных или файловой группы в READ_ONLY или READ_WRITE требуется монопольный доступ к базе данных. В следующем примере база данных устанавливается в режим SINGLE_USER
для получения монопольного доступа. Затем состояние базы данных AdventureWorks2022
устанавливается в READ_ONLY
, а также возвращается доступ к базе данных всем пользователям.
Note
В этом примере используется параметр завершения WITH ROLLBACK IMMEDIATE
в первой инструкции ALTER DATABASE
. Все неполные транзакции откатываются, а все другие подключения к базе данных AdventureWorks2022
немедленно отключены.
USE master;
GO
ALTER DATABASE [database_name]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO
C. включение изоляции моментального снимка для базы данных;
Следующий пример включает параметр платформы изоляции моментального снимка для базы данных AdventureWorks2022
.
USE [database_name];
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO
Результирующий набор показывает, что платформа изоляции моментального снимка включена.
name | snapshot_isolation_state | description |
---|---|---|
[database_name] | 1 | ON |
D. включение, изменение и отключение отслеживания изменений;
В следующем примере демонстрируется включение отслеживания изменений для базы данных AdventureWorks2022
и установка 2
-дневного срока хранения.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
В следующем примере демонстрируется уменьшение срока хранения до 3
дней.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
В следующем примере демонстрируется отключение отслеживания изменений для базы данных AdventureWorks2022
.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
E. включение хранилища запросов;
Applies to: SQL Server (Starting with SQL Server 2016 (13.x))
В приведенном ниже примере включается хранилище запросов и настраиваются его параметры.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
QUERY_CAPTURE_MODE = AUTO,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60
);
F. включение хранилища запросов с использованием статистики ожидания;
Applies to: SQL Server (Starting with SQL Server 2017 (14.x))
В приведенном ниже примере включается хранилище запросов и настраиваются его параметры.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
);
G. включение хранилища запросов с использованием параметров пользовательской политики записи.
Applies to: SQL Server (Starting with SQL Server 2019 (15.x))
В приведенном ниже примере включается хранилище запросов и настраиваются его параметры.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Related content
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- уровень совместимости ALTER DATABASE
- Зеркальное отображение базы данных ALTER DATABASE
- ALTER DATABASE SET HADR
- CREATE DATABASE
- Включение и отключение отслеживания изменений (SQL Server)
- УДАЛИТЬ БАЗУ ДАННЫХ (Transact-SQL)
- ЗАДАТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИЙ (Transact-SQL)
- sp_configure
- рекомендации по мониторингу рабочих нагрузок с помощью хранилища запросов
* База данных SQL *
SQL Database
Уровни совместимости — это SET
параметры, но описаны уровне совместимости ALTER DATABASE.
Note
Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. Параметры инструкции SET уровня сеанса переопределяют значения ALTER DATABASE SET
. Описанные в следующих разделах параметры базы данных являются значениями, которые можно задавать для сеансов, не предоставляющих явно другие значения параметра SET.
Syntax
ALTER DATABASE { database_name | Current }
SET
{
<option_spec> [ ,...n ] [ WITH <termination> ]
}
;
<option_spec> ::=
{
<auto_option>
| <automatic_tuning_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <db_update_option>
| <db_user_access_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
| AUTOMATIC_TUNING ( CREATE_INDEX = { DEFAULT | ON | OFF } )
| AUTOMATIC_TUNING ( DROP_INDEX = { DEFAULT | ON | OFF } )
| AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
<db_update_option> ::=
{ READ_ONLY | READ_WRITE }
<db_user_access_option> ::=
{ RESTRICTED_USER | MULTI_USER }
<delayed_durability_option> ::= DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF
| = ON [ ( <query_store_option_list> [,... n] ) ]
| ( < query_store_option_list> [,... n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> :: =
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<termination>::=
{
ROLLBACK AFTER integer [ SECONDS ]
| ROLLBACK IMMEDIATE
| NO_WAIT
}
<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }
Arguments
database_name
Имя изменяемой базы данных.
CURRENT
CURRENT
выполняет действие в текущей базе данных.CURRENT
работает не со всеми параметрами и не во всех контекстах. ЕслиCURRENT
не работает, укажите имя базы данных.
< > auto_option ::=
Управляет автоматическими параметрами.
AUTO_CREATE_STATISTICS { ON | OFF }
ON
Оптимизатор запросов в случае необходимости создает статистику по отдельным столбцам в предикатах запросов, чтобы улучшить планы запросов и повысить производительность запросов. Такая статистика по отдельным столбцам создается, когда оптимизатор запросов компилирует запросы. Статистика по отдельным столбцам создается только для столбцов, ни один из которых не является первым столбцом в существующем объекте статистики.
Значение по умолчанию — ON. Для большинства баз данных рекомендуется использовать значение по умолчанию.
OFF
Оптимизатор запросов не создает статистику по отдельным столбцам в предикатах запросов во время компиляции запросов. Отключение этого параметра может повлечь создание неоптимальных планов запросов и снижение производительности запросов.
You can determine this option's status by examining the is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the "Statistics options" section in Statistics.
INCREMENTAL = ON | ОТ
Присваивает AUTO_CREATE_STATISTICS значение ON, а INCREMENTAL — значение ON. Он создает автоматически создаваемые статистики как добавочные везде, где поддерживаются добавочные статистики. Значение по умолчанию — OFF. For more information, see CREATE STATISTICS.
AUTO_SHRINK { ON | OFF }
ON
Файлы базы данных являются кандидатами на периодическое сжатие. Если у вас нет определенного требования, не устанавливайте параметр базы данных AUTO_SHRINK значение ON. Дополнительные сведения см. в разделе Сжатие базы данных.
И файлы данных, и файлы журналов могут быть автоматически сжаты. AUTO_SHRINK уменьшает размер журнала транзакций только в том случае, если вы выбрали простую модель восстановления базы данных или создали резервную копию журнала. Если этот параметр установлен в состояние OFF, файлы базы данных не будут автоматически сжиматься при периодической проверке на неиспользуемое пространство.
При включенном параметре AUTO_SHRINK файлы будут сжаты, если более 25 процентов файла содержит неиспользуемое пространство. Параметр вызывает сжатие файла в один из двух размеров. Он сжимает до большего, если:
- размер, в котором 25 процентов файла не используется;
- размер файла при его создании.
Нельзя сжать базу данных, находящуюся в состоянии только для чтения.
OFF
Файлы базы данных не будут автоматически сжаты во время периодических проверок неиспользуемого пространства.
You can determine this option's status by examining the is_auto_shrink_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoShrink
property of the DATABASEPROPERTYEX function.
Note
В автономной базе данных параметр AUTO_SHRINK недоступен.
AUTO_UPDATE_STATISTICS { ON | OFF }
ON
Указывает, что оптимизатор запросов обновляет статистику, если она используется в запросе и может оказаться устаревшей. Статистика становится устаревшей, после того как операции вставки, обновления, удаления или слияния изменяют распределение данных в таблице или индексированном представлении. Оптимизатор запросов определяет, когда статистика может оказаться устаревшей, подсчитывая операции изменения данных с момента последнего обновления статистики и сравнивая количество изменений с пороговым значением. Пороговое значение основано на количестве строк в таблице или индексированном представлении.
Оптимизатор запросов проверяет наличие устаревшей статистики перед компиляцией запроса и выполняет кэшированный план запроса. Оптимизатор запросов с помощью столбцов, таблиц и индексированных представлений в предикате запроса определяет, какая статистика могла устареть. Оптимизатор запросов определяет эти сведения перед компиляцией запроса. Перед запуском кэшированного плана запроса ядро СУБД проверяет, ссылается ли план запроса на актуальную статистику.
Параметр AUTO_UPDATE_STATISTICS применяется к статистике, создаваемой для индексов и отдельных столбцов в предикатах запросов, и к статистике, создаваемой инструкцией CREATE STATISTICS. Этот параметр также применяется к отфильтрованной статистике.
Значение по умолчанию — ON. Для большинства баз данных рекомендуется использовать значение по умолчанию.
Используйте параметр AUTO_UPDATE_STATISTICS_ASYNC, чтобы указать режим обновления статистики: синхронный или асинхронный.
OFF
Указывает, что оптимизатор запросов не обновляет статистику, если она используется в запросе. Оптимизатор запросов также не обновляет статистику, когда она становится устаревшей. Отключение этого параметра может повлечь создание неоптимальных планов запросов и снижение производительности запросов.
You can determine this option's status by examining the
is_auto_update_stats_on
column in the sys.databases catalog view. You can also determine the status by examining theIsAutoUpdateStatistics
property of the DATABASEPROPERTYEX function.For more information, see the "Statistics options" section in Statistics.
AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ON
Указывает, что обновление статистики для параметра AUTO_UPDATE_STATISTICS выполняется асинхронно. Оптимизатор запросов не ожидает завершения обновления статистики перед компиляцией запросов.
Установка этого параметра в состояние ON не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в состояние ON.
По умолчанию параметр AUTO_UPDATE_STATISTICS_ASYNC имеет значение OFF, а оптимизатор запросов обновляет статистику в синхронном режиме.
OFF
Указывает, что обновление статистики для параметра AUTO_UPDATE_STATISTICS выполняется синхронно. Оптимизатор запросов ожидает завершения обновления статистики перед компиляцией запросов.
Установка этого параметра в значение OFF не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в значение ON.
You can determine this option's status by examining the is_auto_update_stats_async_on
column in the sys.databases catalog view.
For more information that describes when to use synchronous or asynchronous statistics updates, see the "Statistics options" section in Statistics.
< > automatic_tuning_option ::=
Controls automatic options for Automatic tuning. Параметры для следующих параметров можно просмотреть на портале Azure или с помощью T-SQL в представлении sys.database_automatic_tuning_options
.
AUTOMATIC_TUNING = { AUTO | НАСЛЕДОВАНИЕ | CUSTOM }
AUTO
Установка значения автоматической настройки для автоматической настройки применяет параметры конфигурации Azure по умолчанию для автоматической настройки. На портале Azure это соответствует параметру "Наследование: Значения по умолчанию Azure".
INHERIT
При использовании значения INHERIT с родительского сервера будет наследоваться конфигурация по умолчанию. На портале Azure это соответствует параметру "Наследование: Сервер". Это особенно полезно, если вы хотите задать на родительском сервере пользовательские параметры автоматической настройки, которые будут наследовать все базы данных. Чтобы наследование работало, для работы трех отдельных параметров настройки FORCE_LAST_GOOD_PLAN, CREATE_INDEX и DROP_INDEX необходимо задать значение DEFAULT для баз данных.
CUSTOM
Используя настраиваемое значение, необходимо настроить каждый из параметров автоматической настройки, доступных в базах данных. На портале Azure это отражает возможность "наследовать от: Не наследовать".
CREATE_INDEX = { DEFAULT | ON | OFF }
Enables or disables automatic index management CREATE_INDEX
option of Automatic tuning. Состояние этого параметра можно просмотреть на портале Azure или с помощью T-SQL в представлении sys.database_automatic_tuning_options
.
DEFAULT
Наследует параметры по умолчанию с сервера. В этом случае параметры включения и отключения отдельных функций автоматической настройки задаются на уровне сервера.
ON
Если этот параметр включен, недостающие индексы в базе данных создаются автоматически. После создания индексов измеряется повышение производительности рабочей нагрузки. Если созданный таким образом индекс больше не повышает производительность рабочей нагрузки, он автоматически отменяется. Автоматически созданные индексы отмечаются как созданные системой.
OFF
Не создает автоматически недостающие индексы в базе данных.
DROP_INDEX = { DEFAULT | ON | OFF }
Enables or disables automatic index management DROP_INDEX
option of Automatic tuning. Состояние этого параметра можно просмотреть на портале Azure или с помощью T-SQL в представлении sys.database_automatic_tuning_options
.
DEFAULT
Наследует параметры по умолчанию с сервера. В этом случае параметры включения и отключения отдельных функций автоматической настройки задаются на уровне сервера.
ON
Автоматически удаляет повторяющиеся или неиспользуемые индексы для повышения производительности рабочей нагрузки.
OFF
Не удаляет автоматически недостающие индексы в базе данных.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF }
Enables or disables automatic plan correction FORCE_LAST_GOOD_PLAN
option of Automatic tuning. Состояние этого параметра можно просмотреть на портале Azure или с помощью T-SQL в представлении sys.database_automatic_tuning_options
.
DEFAULT
Наследует параметры по умолчанию с сервера. В этом случае параметры включения и отключения отдельных функций автоматической настройки задаются на уровне сервера. Это значение по умолчанию. Значением по умолчанию для новых серверов SQL Azure является ON, то есть по умолчанию новые базы данных наследуют параметр ON.
ON
Ядро СУБД автоматически включает последний известный удачный план для Transact-SQL запросов, когда новый план запроса приводит к снижению производительности. Ядро СУБД непрерывно отслеживает производительность запроса Transact-SQL в форсированном плане. При наличии повышения производительности ядро СУБД продолжает использовать последний известный хороший план. Если повышение производительности не обнаружено, ядро СУБД создает новый план запроса. The statement fails if the Query Store isn't enabled, or isn't in Read-Write mode.
OFF
The Database Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. Однако эти рекомендации не применяются автоматически. Пользователь может отслеживать активные рекомендации и устранять выявленные проблемы, применяя сценарии Transact-SQL, которые отображаются в представлении.
< > change_tracking_option ::=
Определяет параметры отслеживания изменений. Отслеживание изменений можно включить или отключить, а также установить или изменить параметры. For examples, see the Examples section later in this article.
ON
Включает отслеживание изменений для базы данных. При включении отслеживания изменений также необходимо задать параметры AUTO CLEANUP и CHANGE RETENTION.
AUTO_CLEANUP = { ON | OFF }
ON
Данные отслеживания изменений автоматически удаляются по истечении заданного срока хранения.
OFF
Данные отслеживания изменений не удаляются из базы данных.
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
Указывает минимальный срок хранения данных отслеживания изменений в базе данных. Данные удаляются, только если для параметра AUTO_CLEANUP установлено значение ON.
retention_period is an integer that specifies the numerical component of the retention period.
The default retention period is 2 days. Минимальный срок хранения составляет 1 минуту. The default retention type is DAYS.
OFF
Отключает отслеживание изменений для базы данных. Перед отключением отслеживания изменений для базы данных предварительно отключите отслеживание изменений для всех таблиц.
< > cursor_option ::=
Управляет параметрами курсора.
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ON
Любые курсоры, открытые при фиксации или откате транзакции, закрываются.
OFF
Курсоры остаются открытыми при фиксации транзакции; откат транзакции закрывает все курсоры, кроме этих курсоров, определенных как INSENSITIVE или STATIC.
Настройки уровня соединения, которые установлены с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для CURSOR_CLOSE_ON_COMMIT. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая CURSOR_CLOSE_ON_COMMIT в значение OFF для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET CURSOR_CLOSE_ON_COMMIT.
You can determine this option's status by examining the is_cursor_close_on_commit_on
column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled
property of the DATABASEPROPERTYEX function. Курсор неявно освобождается только при отключении. For more information, see DECLARE CURSOR.
< > db_encryption_option ::=
Определяет параметры шифрования базы данных.
ENCRYPTION { ON | OFF }
Включает шифрование базы данных (ON) или отключает его (OFF). Дополнительные сведения о шифровании баз данных см. в прозрачного шифрования данных (TDE) и прозрачного шифрования данных для базы данных SQL Azure, управляемого экземпляра SQL Azure и Azure Synapse Analytics.
Если шифрование включено на уровне базы данных, все группы файлов шифруются. Все новые группы файлов наследуют зашифрованное свойство. Если для любой группы файлов в базе данных задано значение READ ONLY, операция шифрования базы данных завершается ошибкой.
You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.
< > db_update_option ::=
Управляет разрешениями на обновления базы данных.
READ_ONLY
Пользователи могут считывать данные из базы данных, но не могут изменять их.
Note
Для улучшения производительности запросов выполните обновление статистики перед тем, как перевести базу данных в режим доступа READ_ONLY. Если после READ_ONLY базы данных требуется дополнительная статистика, ядро СУБД создает статистику в
tempdb
. For more information about statistics for a read-only database, see Statistics.READ_WRITE
База данных доступна для операций чтения и записи.
Чтобы изменить это состояние, необходимо обладать монопольным доступом к базе данных. Дополнительные сведения см. в описании предложения SINGLE_USER.
Note
В База данных SQL Azure федеративных базах данных SET { READ_ONLY | READ_WRITE }
отключен.
< > db_user_access_option ::=
Управляет пользовательским доступом к базе данных.
RESTRICTED_USER
Позволяет подключаться к базе данных только членам предопределенной роли базы данных
db_owner
и предопределенных ролей сервераdbcreator
иsysadmin
. Количество соединений при этом не ограничивается. Все соединения с базой данных будут отключены на период времени, определяемый завершающим предложением инструкции ALTER DATABASE. После того как база данных перешла в состояние RESTRICTED_USER, попытки подключения пользователей, не соответствующими описанным выше условиям, будут отклонены. В Базе данных SQL Azure ее необходимо выполнять из пользовательской базы данных. В базе данныхmaster
может возникнуть сообщение об ошибкеMsg 42008, Level 16, State 3, Line 1 ODBC error: State: 28000: Error: 18456 Message:'[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user '##MS_InstanceCertificate##'.'.
MULTI_USER
Все пользователи, имеющие соответствующие разрешения на подключение к базе данных, будут допущены к базе данных. You can determine this option's status by examining the
user_access
column in the sys.databases catalog view or theUserAccess
property of the DATABASEPROPERTYEX function. В Базе данных SQL Azure ее необходимо выполнять из пользовательской базы данных. В базе данныхmaster
может возникнуть сообщение об ошибкеMsg 42008, Level 16, State 3, Line 1 ODBC error: State: 28000: Error: 18456 Message:'[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user '##MS_InstanceCertificate##'.'.
< > delayed_durability_option ::=
Управляет тем, является ли фиксация транзакций полностью устойчивой или отложенной устойчивой.
DISABLED
Все транзакции, следующие за
SET DISABLED
, являются полностью устойчивыми. Все параметры устойчивости, заданные в блоке ATOMIC или инструкции COMMIT, не учитываются.ALLOWED
Все транзакции, следующие за
SET ALLOWED
, являются полностью устойчивыми или отложенными устойчивыми в зависимости от параметра устойчивости, заданного в блоке ATOMIC или инструкции COMMIT.FORCED
Все транзакции, следующие за
SET FORCED
, являются отложенными устойчивыми. Все параметры устойчивости, заданные в блоке ATOMIC или инструкции COMMIT, не учитываются.
< > PARAMETERIZATION_option ::=
Управляет параметром параметризации.
ПАРАМЕТРИЗАЦИЯ { SIMPLE | ПРИНУДИТЕЛЬНО }
SIMPLE
Запросы параметризуются на основании поведения базы данных по умолчанию.
FORCED
SQL Server параметризирует все запросы в базе данных.
The current setting of this option can be determined by examining the is_parameterization_forced
column in the sys.databases catalog view.
< > query_store_options ::=
ON | OFF | CLEAR [ ALL ]
Указывает, включено ли хранилище запросов в этой базе данных, а также управляет удалением содержимого хранилища запросов.
ON
Включает хранилище запросов. ON — значение по умолчанию.
OFF
Отключает хранилище запросов.
Note
хранилище запросов нельзя отключить в одной базе данных и эластичном пуле База данных SQL Azure. Выполнение
ALTER DATABASE [database] SET QUERY_STORE = OFF
возвращает предупреждение'QUERY_STORE=OFF' is not supported in this version of SQL Server.
.CLEAR
Удаляет содержимое хранилища запросов.
OPERATION_MODE
Описывает режим работы хранилища запросов. Допустимые значения: READ_ONLY и READ_WRITE. В режиме READ_WRITE хранилище запросов собирает и сохраняет план запросов и статистические данные о выполнении. В режиме READ_ONLY можно считывать данные из хранилища запросов, но новые сведения не добавляются. Если максимальное выделенное пространство хранилища запросов было исчерпано, хранилище запросов изменяет режим работы на READ_ONLY.
CLEANUP_POLICY
Описывает политику хранения данных хранилища запросов. STALE_QUERY_THRESHOLD_DAYS определяет количество дней хранения сведений о запросе в хранилище. STALE_QUERY_THRESHOLD_DAYS is type bigint. Значение по умолчанию — 30. For SQL Database Basic edition, default is 7 days.
DATA_FLUSH_INTERVAL_SECONDS
Определяет частоту, с которой данные, записанные в хранилище запросов, сохраняются на диск. Для оптимизации производительности данные, собранные хранилищем запросов, асинхронно записываются на диск. Для настройки частоты этой асинхронной передачи используется аргумент DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is type bigint. The default value is 900 (15 min).
MAX_STORAGE_SIZE_MB
Определяет свободное место, выделенное для хранилища запросов. MAX_STORAGE_SIZE_MB is type bigint.
Note
In Azure SQL Database, the default MAX_STORAGE_SIZE_MB
value differs by service tier, as follows: Premium, Business Critical, and Hyperscale: 1,024 MB; Standard and General Purpose: 100 MB; Basic: 10 MB The maximum allowed MAX_STORAGE_SIZE_MB
value is 10,240 MB.
Note
Ограничение MAX_STORAGE_SIZE_MB
не применяется строго. Размер хранилища проверяется только в том случае, если хранилище запросов записывает данные на диск. Этот интервал задается параметром DATA_FLUSH_INTERVAL_SECONDS
или параметром диалогового окна хранилища запросов Management Studio Интервал записи данных на диск. Значение по умолчанию — 900 секунд (или 15 минут).
Если хранилище запросов нарушило ограничение MAX_STORAGE_SIZE_MB
между проверками размера хранилища, оно переходит в режим только для чтения. Если параметр SIZE_BASED_CLEANUP_MODE
включен, также активируется механизм очистки для принудительного применения ограничения MAX_STORAGE_SIZE_MB
.
После очистки достаточного пространства режим хранилища запросов автоматически переключается на чтение и запись.
Important
If you think that your workload capture needs more than 10 GB of disk space, you should probably rethink and optimize your workload to reuse query plans (for example using forced parameterization, or adjust the Query Store configurations.
Начиная с SQL Server 2019 (15.x) и в База данных SQL Azure можно задать QUERY_CAPTURE_MODE
значение CUSTOM для дополнительного управления политикой отслеживания запросов.
INTERVAL_LENGTH_MINUTES
Определяет временной интервал вычисления статистических данных о среде выполнения в хранилище запросов. Для оптимизации использования свободного места статистические данные о среде выполнения в хранилище вычисляются для фиксированного временного интервала. Этот интервал настраивается с помощью аргумента INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is type bigint. The default value is 60.
SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
Определяет, активируется ли очистка автоматически, когда общий объем данных приближается к максимальному размеру.
OFF
Очистка на основе размера не активируется автоматически.
AUTO
Size-based cleanup is automatically activated when size on disk reaches 90% of max_storage_size_mb. Эта очистка сначала удаляет самые дешевые и самые старые запросы. It stops at approximately 80% of max_storage_size_mb. Это значение конфигурации по умолчанию.
SIZE_BASED_CLEANUP_MODE is type nvarchar.
QUERY_CAPTURE_MODE { ALL | AUTO | CUSTOM | NONE }
Определяет режим записи текущего активного запроса. В каждом режиме определяются собственные политики записи.
Note
Курсоры, запросы в хранимых процедурах и скомпилированные в собственном коде запросы всегда записываются, если задан режим записи запроса ALL, AUTO или CUSTOM.
ALL
Записывает все запросы.
AUTO
Записываются соответствующие запросы на основе показателя выполнения и объема потребления ресурсов. Это значение конфигурации по умолчанию для База данных SQL Azure.
NONE
Запись новых запросов останавливается. Хранилище запросов продолжает собирать статистику компиляции и среды выполнения для запросов, которые уже были записаны. Используйте эту конфигурацию с осторожностью, так как вы можете пропустить запись важных запросов.
CUSTOM
Позволяет управлять параметрами QUERY_CAPTURE_POLICY.
QUERY_CAPTURE_MODE is type nvarchar.
MAX_PLANS_PER_QUERY
Определяет максимальное количество поддерживаемых планов для каждого запроса. MAX_PLANS_PER_QUERY is type int. The default value is 200.
WAIT_STATS_CAPTURE_MODE { ON | OFF }
Определяет, фиксируются ли статистические данные ожидания для каждого запроса.
ON
Информация о статистике ожидания по запросам отслеживается. Это значение является значением конфигурации по умолчанию.
OFF
Данные статистики ожидания для каждого запроса не записываются.
< > query_capture_policy_option_list :: =
Управляет параметрами политики записи для хранилища запросов. За исключением STALE_CAPTURE_POLICY_THRESHOLD, эти параметры определяют условия OR, которые должны выполняться для запросов, записываемых в определенное пороговое значение устаревшей политики записи.
STALE_CAPTURE_POLICY_THRESHOLD = integer { DAYS | HOURS }
Определяет период интервала ознакомления для определения того, нужно ли записать запрос. Значение по умолчанию — 1 день, можно указать от 1 часа до 7 дней. number is type int.
EXECUTION_COUNT = integer
Определяет количество выполнений запроса в течение ознакомительного периода. Значение по умолчанию — 30, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен быть выполнен по меньшей мере 30 раз за один день, чтобы быть сохраненным в хранилище запросов. EXECUTION_COUNT is type int.
TOTAL_COMPILE_CPU_TIME_MS = integer
Определяет общее время ЦП, затраченное на компиляцию, которое запрос использовал за ознакомительный период. Значение по умолчанию — 1000, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен иметь общее время ЦП, затраченное на компиляцию, не менее одной секунды за один день, чтобы быть сохраненным в хранилище запросов. TOTAL_COMPILE_CPU_TIME_MS is type int.
TOTAL_EXECUTION_CPU_TIME_MS = integer
Определяет общее время ЦП, затраченное на выполнение, которое запрос использовал за ознакомительный период. Значение по умолчанию — 100, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен иметь общее время ЦП, затраченное на выполнение, не менее 100 мс за один день, чтобы быть сохраненным в хранилище запросов. TOTAL_EXECUTION_CPU_TIME_MS is type int.
< > snapshot_option ::=
Определяет уровень изоляции транзакции.
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ON
Включает параметр моментальных снимков на уровне базы данных. Если параметр включен, инструкции DML начинают создавать версии строк, даже если ни одна транзакция не использует изоляцию моментальных снимков. После установки этого параметра транзакции могут задавать уровень изоляции транзакций SNAPSHOT. Если транзакция выполняется на уровне изоляции SNAPSHOT, всем инструкциям видны данные из моментального снимка в состоянии, которое существовало в момент начала транзакции. Если транзакция выполняется с уровнем изоляции SNAPSHOT и обращается к данным нескольких баз данных, то либо параметр ALLOW_SNAPSHOT_ISOLATION должен быть установлен в состояние ON во всех базах данных, либо каждая инструкция в транзакции должна использовать подсказки блокировки при любом обращении предложения FROM к таблице базы данных, в которой параметр ALLOW_SNAPSHOT_ISOLATION установлен в состояние OFF.
OFF
Отключает параметр моментальных снимков на уровне базы данных. Транзакции не могут указывать уровень изоляции SNAPSHOT.
Если вы изменяете состояние ALLOW_SNAPSHOT_ISOLATION (из ON в OFF или из OFF в ON), инструкция ALTER DATABASE не возвращает управление вызвавшей ее программе, пока все существующие транзакции в базе данных не будут зафиксированы. Если база данных уже находится в состоянии, указанном в инструкции ALTER DATABASE, управление вызвавшей программе будет возвращено немедленно. If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Если инструкция ALTER DATABASE отменена, база данных останется в состоянии, в котором она находилась при запуске ALTER DATABASE. The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Если snapshot_isolation_state_desc = IN_TRANSITION_TO_ON
, оператор ALTER DATABASE .... ALLOW_SNAPSHOT_ISOLATION OFF
приостанавливает шесть секунд и повторяет операцию.
Изменить состояние ALLOW_SNAPSHOT_ISOLATION невозможно, если база данных находится в режиме OFFLINE.
Если ALLOW_SNAPSHOT_ISOLATION в базе данных READ_ONLY, параметр сохраняется, если база данных будет установлена в READ_WRITE.
The current setting of this option can be determined by examining the snapshot_isolation_state
column in the sys.databases catalog view.
READ_COMMITTED_SNAPSHOT { ON | OFF }
ON
Включает параметр уровня изоляции моментальных снимков READ COMMITTED на уровне базы данных. Если параметр включен, инструкции DML начинают создавать версии строк, даже если ни одна транзакция не использует изоляцию моментальных снимков. После включения этого параметра транзакции, указывающие уровень изоляции READ COMMITTED, используют управление версиями строк вместо блокировки. Данные моментального снимка видны всем инструкциям в состоянии, которое существовало на момент начала выполнения инструкции, если транзакция выполняется с уровнем изоляции READ COMMITTED.
OFF
Отключает параметр уровня изоляции моментальных снимков READ COMMITTED на уровне базы данных. Транзакции с уровнем изоляции READ COMMITTED используют блокировку.
Чтобы установить параметр READ_COMMITTED_SNAPSHOT в значение ON или OFF, с базой данных не должно быть активных соединений, за исключением соединения, выполняющего команду ALTER DATABASE. Однако это не означает, что база данных должна находиться в однопользовательском режиме. Изменить состояние этого параметра невозможно, если база данных находится в режиме OFFLINE.
Если вы устанавливаете READ_COMMITTED_SNAPSHOT в базе данных READ_ONLY, параметр сохраняется при последующем READ_WRITE базы данных.
Параметр READ_COMMITTED_SNAPSHOT не может иметь значение ON для системных баз данных master
, tempdb
или msdb
. Если изменить настройку для базы данных model
, эта настройка становится значением по умолчанию для всех вновь создаваемых баз данных, кроме tempdb
.
The current setting of this option can be determined by examining the is_read_committed_snapshot_on
column in the sys.databases catalog view.
Warning
When a table is created with DURABILITY = SCHEMA_ONLY
, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE
, data in the table is lost.
Tip
В База данных SQL Azure команда для ALTER DATABASE
задания READ_COMMITTED_SNAPSHOT ON или OFF для базы данных должна выполняться в master
базе данных.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
ON
Если уровень изоляции транзакции установлен в любое значение ниже SNAPSHOT, все интерпретированные операции Transact-SQL в таблицах, оптимизированных для памяти, выполняются с уровнем изоляции SNAPSHOT. Примеры уровней изоляции ниже, чем моментальный снимок — READ COMMITTED или READ UNCOMMITTED. Эти операции выполняются независимо от того, установлен ли уровень изоляции транзакции явно на уровне сеанса или неявно используется значение по умолчанию.
OFF
Не повышает уровень изоляции транзакции для интерпретированных операций Transact-SQL в таблицах, оптимизированных для памяти.
Изменить состояние MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT невозможно, если база данных находится в режиме OFFLINE.
Значение по умолчанию — OFF.
The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on
column in the sys.databases catalog view.
< > sql_option ::=
Управляет параметрами соответствия ANSI на уровне базы данных.
ANSI_NULL_DEFAULT { ON | OFF }
Определяет значение по умолчанию, NULL или NOT NULL, для столбцов определяемых пользователем типов CLR, для которых в инструкциях CREATE TABLE или ALTER TABLE не указана явно допустимость значений NULL. Столбцы, определенные с ограничениями, следуют правилам ограничений независимо от того, какой этот параметр может быть.
ON
Значение по умолчанию — NULL.
OFF
Значением по умолчанию является NOT NULL.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют настройки уровня базы данных по умолчанию для ANSI_NULL_DEFAULT. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_NULL_DEFAULT в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_NULL_DFLT_ON.
Для совместимости ANSI при установке параметра базы данных ANSI_NULL_DEFAULT в состояние ON изменяется значение по умолчанию базы данных на значение NULL.
You can determine this option's status by examining the is_ansi_null_default_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullDefault
property of the DATABASEPROPERTYEX function.
ANSI_NULLS { ON | OFF }
ON
Результатом любого сравнения со значением NULL будет UNKNOWN.
OFF
Сравнение значений, отличных от Юникода, с значением NULL, равное TRUE, если оба значения равны NULL.
Important
В будущей версии SQL Server ANSI_NULLS всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для ANSI_NULLS. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_NULLS в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_NULLS.
Note
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ANSI_NULLS также должен быть установлен в ON.
You can determine this option's status by examining the is_ansi_nulls_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullsEnabled
property of the DATABASEPROPERTYEX function.
ANSI_PADDING { ON | OFF }
ON
Строки перед преобразованием дополняются до одной и той же длины. Also padded to the same length before inserting to a varchar or nvarchar data type.
OFF
Inserts trailing blanks in character values into varchar or nvarchar columns. Also leaves trailing zeros in binary values that are inserted into varbinary columns. Значения не подгоняются под длину столбца.
Состояние OFF касается только определения новых столбцов.
Important
В будущей версии SQL Server ANSI_PADDING всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Рекомендуется всегда задавать для параметра ANSI_PADDING значение ON. При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр ANSI_PADDING должен быть установлен в ON.
char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. Конечные пробелы и нули отбрасываются, если параметр ANSI_PADDING имеет значение OFF. char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют настройки уровня базы данных по умолчанию для ANSI_PADDING. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_PADDING в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_PADDING.
You can determine this option's status by examining the is_ansi_padding_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiPaddingEnabled
property of the DATABASEPROPERTYEX function.
ANSI_WARNINGS { ON | OFF }
ON
В случае возникновения таких ситуаций, как деление на ноль, выдаются ошибки или предупреждения. Ошибки и предупреждения также возникают тогда, когда значения NULL появляются в агрегатных функциях.
OFF
Предупреждения не выводятся, а в таких ситуациях, как деление на ноль, возвращается NULL.
Note
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ANSI_WARNINGS должен быть установлен в ON.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для ANSI_WARNINGS. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_WARNINGS в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_WARNINGS.
You can determine this option's status by examining the is_ansi_warnings_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiWarningsEnabled
property of the DATABASEPROPERTYEX function.
ARITHABORT { ON | OFF }
ON
Запрос будет завершен, если во время его выполнения возникла ошибка переполнения или деления на ноль.
OFF
Когда возникает одна из этих ошибок, выводится предупреждающее сообщение. Запрос, пакет или транзакция продолжают выполняться, как если бы ошибки не произошло, даже если выводится предупреждение.
Note
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ARITHABORT должен быть установлен в ON.
You can determine this option's status by examining the is_arithabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsArithmeticAbortEnabled
property of the DATABASEPROPERTYEX function.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Дополнительные сведения см. в уровне совместимости ALTER DATABASE.
CONCAT_NULL_YIELDS_NULL { ON | OFF }
ON
Результатом операции объединения будет NULL, если любой из операндов — NULL. Например, объединение строки символов "Это" со значением NULL приведет к результату NULL вместо "Это".
OFF
Значение NULL будет обработано как пустая строка символов.
Note
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр CONCAT_NULL_YIELDS_NULL должен быть установлен в ON.
В будущей версии SQL Server CONCAT_NULL_YIELDS_NULL всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Настройки уровня соединения, которые установлены с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для CONCAT_NULL_YIELDS_NULL. По умолчанию клиенты ODBC и OLE DB выдают параметр инструкции SET уровня подключения CONCAT_NULL_YIELDS_NULL значение ON для сеанса при подключении к экземпляру SQL Server. For more information, see SET CONCAT_NULL_YIELDS_NULL.
You can determine this option's status by examining the is_concat_null_yields_null_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNullConcat
property of the DATABASEPROPERTYEX function.
NUMERIC_ROUNDABORT { ON | OFF }
ON
Если в выражении происходит потеря точности, будет сформирована ошибка.
OFF
Потеря точности вызывает сообщения об ошибках, а результат округляется до точности столбца или переменной, в которых сохраняется результат.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр NUMERIC_ROUNDABORT должен быть установлен в OFF.
You can determine the status for this option in the is_numeric_roundabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNumericRoundAbortEnabled
property of the DATABASEPROPERTYEX function.
QUOTED_IDENTIFIER { ON | OFF }
ON
Двойные кавычки могут использоваться для идентификаторов с разделителями.
Все строки, находящиеся в двойных кавычках, интерпретируются как идентификаторы объектов. Идентификаторы с разделителями не должны соответствовать правилам для идентификаторов Transact-SQL. Они могут быть ключевыми словами и включать символы, не разрешенные в идентификаторах Transact-SQL. Если двойная кавычка (
"
) является частью идентификатора, она может быть представлена двумя двойными кавычками (""
).OFF
Идентификаторы не могут быть заключены в кавычки и должны следовать всем правилам для идентификаторов Transact-SQL. Литералы могут разделяться как одинарными, так и двойными кавычками.
SQL Server также позволяет разделять идентификаторы квадратными скобками ([
и ]
). Идентификаторы в скобках могут использоваться всегда, независимо от значения параметра QUOTED_IDENTIFIER. For more information, see Database identifiers.
При создании таблицы параметр QUOTED IDENTIFIER всегда сохраняется как ON в метаданных таблицы. Параметр сохраняется, даже если при создании таблицы он был установлен на OFF.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для QUOTED_IDENTIFIER. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая QUOTED_IDENTIFIER в значение ON, по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET QUOTED_IDENTIFIER.
You can determine this option's status by examining the is_quoted_identifier_on
column in the sys.databases catalog view. You can also determine the status by examining the IsQuotedIdentifiersEnabled
property of the DATABASEPROPERTYEX function.
RECURSIVE_TRIGGERS { ON | OFF }
ON
Рекурсивное срабатывание триггеров AFTER разрешено.
OFF
You can determine this option's status by examining the
is_recursive_triggers_on
column in the sys.databases catalog view. You can also determine the status by examining theIsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
Note
Если параметр RECURSIVE_TRIGGERS установлен в состояние OFF, будет запрещена только прямая рекурсия. Чтобы отключить косвенную рекурсию, нужно установить параметр сервера nested triggers в состояние 0.
You can determine this option's status by examining the is_recursive_triggers_on
column in the sys.databases catalog view or the IsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
< > target_recovery_time_option ::=
Указывает частоту косвенных контрольных точек для каждой базы данных. Starting with SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates the database uses indirect checkpoints. Для старых версий значение по умолчанию равно 0, указывающее, что база данных использует автоматические контрольные точки, частота которой зависит от параметра интервала восстановления экземпляра сервера. Корпорация Майкрософт рекомендует 1 минуту для большинства систем.
TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
target_recovery_time
Указывает максимальное время для восстановления определенной базы данных в случае сбоя. target_recovery_time is type int.
SECONDS
Indicates that target_recovery_time is expressed as the number of seconds.
MINUTES
Indicates that target_recovery_time is expressed as the number of minutes.
For more information about indirect checkpoints, see Database checkpoints.
ЗАВЕРШЕНИЕ< WITH >::=
Указывает, когда откатывать незавершенные транзакции при переходе базы данных из одного состояния в другое. Если предложение завершения опущено, инструкция ALTER DATABASE будет бесконечно ожидать блокировки базы данных. Может быть указано только одно предложение завершения, которое должно следовать за предложением SET.
Note
Не все параметры базы данных могут использоваться с предложением WITH <termination>. For more information, see the table under Setting options of the "Remarks" section of this article.
ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Указывает, нужно ли откатить транзакцию через указанное количество секунд или немедленно.
NO_WAIT
Указывает, что запрос завершается ошибкой, если запрошенное состояние базы данных или изменение параметра не может завершиться немедленно. Завершение работы сразу же означает завершение без ожидания фиксации транзакции или отката.
< > temporal_history_retention ::=
TEMPORAL_HISTORY_RETENTION { ON | OFF }
По умолчанию используется флаг ON, но после операции восстановления на определенный момент времени автоматически устанавливается флаг OFF. Дополнительные сведения о том, как включить этот параметр, см. в разделе Настройка политики хранения.
ON
Default. Включает политику хранения темпоральной таблицы. Дополнительные сведения см. в статье Управление хранением данных журнала в темпоральных таблицах с системным управлением версиями.
OFF
Не выполняйте темпоральную политику хранения.
Set options
To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX
После установки параметра базы данных новое значение вступает в силу немедленно.
Вы можете изменить значения по умолчанию для любого из параметров базы данных для всех созданных баз данных. Для этого измените соответствующий параметр базы данных model
.
Не все параметры базы данных используют предложение WITH <termination> или могут быть указаны в сочетании с другими параметрами. В следующей таблице перечислены эти параметры.
Options category | Может быть указан с другими параметрами | Может использовать предложение WITH <termination> |
---|---|---|
<auto_option> | Yes | No |
<change_tracking_option> | Yes | Yes |
<cursor_option> | Yes | No |
<db_encryption_option> | Yes | No |
<db_update_option> | Yes | Yes |
<db_user_access_option> | Yes | Yes |
<delayed_durability_option> | Yes | Yes |
<parameterization_option> | Yes | Yes |
ALLOW_SNAPSHOT_ISOLATION | No | No |
READ_COMMITTED_SNAPSHOT | No | Yes |
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT | Yes | Yes |
DATE_CORRELATION_OPTIMIZATION | Yes | Yes |
<sql_option> | Yes | No |
<target_recovery_time_option> | No | Yes |
Examples
A. перевод базы данных в состояние READ_ONLY;
Изменение состояния базы данных или файловой группы на READ_ONLY или READ_WRITE требует эксклюзивного доступа к базе данных и может занять несколько секунд. В следующем примере для базы данных устанавливается режим RESTRICTED_USER
, ограничивающий доступ к ней. Затем состояние базы данных AdventureWorks2022
устанавливается в READ_ONLY
, а также возвращается доступ к базе данных всем пользователям.
--Connect to [database_name];
GO
ALTER DATABASE [database_name]
SET RESTRICTED_USER;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
--`SET READ_ONLY` command might take a few seconds to complete.
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO
Чтобы переключить базу данных обратно в режим чтения и записи, выполните следующее:
--Connect to [database_name];
GO
ALTER DATABASE [database_name]
SET READ_WRITE
GO
To verify:
SELECT [name], user_access_desc, is_read_only FROM sys.databases
WHERE [name] = 'database_name'
GO
B. включение изоляции моментального снимка для базы данных;
Следующий пример включает параметр платформы изоляции моментального снимка для базы данных AdventureWorks2022
.
--Connect to [database_name]
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
Проверьте состояние snapshot_isolation_framework
в базе данных.
--Connect to [database_name]
SELECT name, snapshot_isolation_state,
snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'database_name';
GO
Результирующий набор показывает, что платформа изоляции моментального снимка включена.
name | snapshot_isolation_state | description |
---|---|---|
[database_name] | 1 | ON |
C. включение, изменение и отключение отслеживания изменений;
В следующем примере демонстрируется включение отслеживания изменений для базы данных AdventureWorks2022
и установка 2
-дневного срока хранения.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
В следующем примере демонстрируется уменьшение срока хранения до 3 дней.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
В следующем примере демонстрируется отключение отслеживания изменений для базы данных AdventureWorks2022
.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
D. включение хранилища запросов;
В следующем примере включается хранилище запросов и настраиваются его параметры.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
QUERY_CAPTURE_MODE = AUTO,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60
);
E. включение хранилища запросов с использованием статистики ожидания;
В приведенном ниже примере включается хранилище запросов и настраиваются его параметры.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON
);
F. включение хранилища запросов с использованием параметров пользовательской политики записи.
В приведенном ниже примере включается хранилище запросов и настраиваются его параметры.
--Connect to [database_name]
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Related content
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- уровень совместимости ALTER DATABASE
- Зеркальное отображение базы данных ALTER DATABASE
- CREATE DATABASE
- Включение и отключение отслеживания изменений (SQL Server)
- УДАЛИТЬ БАЗУ ДАННЫХ (Transact-SQL)
- ЗАДАТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИЙ (Transact-SQL)
- sp_configure
- рекомендации по мониторингу рабочих нагрузок с помощью хранилища запросов
- Указания хранилища запросов
* Управляемый экземпляр SQL *
Управляемый экземпляр SQL Azure
Уровни совместимости — это SET
параметры, но описаны уровне совместимости ALTER DATABASE.
Note
Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. Параметры инструкции SET уровня сеанса переопределяют значения ALTER DATABASE SET
. Описанные в следующих разделах параметры базы данных являются значениями, которые можно задавать для сеансов, не предоставляющих явно другие значения параметра SET.
Syntax
ALTER DATABASE { database_name | Current }
SET
{
<optionspec> [ ,...n ]
}
;
<optionspec> ::=
{
<auto_option>
| <change_tracking_option>
| <cursor_option>
| <db_encryption_option>
| <delayed_durability_option>
| <parameterization_option>
| <query_store_options>
| <snapshot_option>
| <sql_option>
| <target_recovery_time_option>
| <termination>
| <temporal_history_retention>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
| AUTO_SHRINK { ON | OFF }
| AUTO_UPDATE_STATISTICS { ON | OFF }
| AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}
<automatic_tuning_option> ::=
{
AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}
<change_tracking_option> ::=
{
CHANGE_TRACKING
{
= OFF
| = ON [ ( <change_tracking_option_list > [,...n] ) ]
| ( <change_tracking_option_list> [,...n] )
}
}
<change_tracking_option_list> ::=
{
AUTO_CLEANUP = { ON | OFF }
| CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
}
<cursor_option> ::=
{
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}
<db_encryption_option> ::=
ENCRYPTION { ON | OFF }
<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }
<parameterization_option> ::=
PARAMETERIZATION { SIMPLE | FORCED }
<query_store_options> ::=
{
QUERY_STORE
{
= OFF
| = ON [ ( <query_store_option_list> [,... n] ) ]
| ( < query_store_option_list> [,... n] )
| CLEAR [ ALL ]
}
}
<query_store_option_list> ::=
{
OPERATION_MODE = { READ_WRITE | READ_ONLY }
| CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
| DATA_FLUSH_INTERVAL_SECONDS = number
| MAX_STORAGE_SIZE_MB = number
| INTERVAL_LENGTH_MINUTES = number
| SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
| QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
| MAX_PLANS_PER_QUERY = number
| WAIT_STATS_CAPTURE_MODE = { ON | OFF }
| QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}
<query_capture_policy_option_list> :: =
{
STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
| EXECUTION_COUNT = number
| TOTAL_COMPILE_CPU_TIME_MS = number
| TOTAL_EXECUTION_CPU_TIME_MS = number
}
<snapshot_option> ::=
{
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
| READ_COMMITTED_SNAPSHOT { ON | OFF }
| MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
}
<sql_option> ::=
{
ANSI_NULL_DEFAULT { ON | OFF }
| ANSI_NULLS { ON | OFF }
| ANSI_PADDING { ON | OFF }
| ANSI_WARNINGS { ON | OFF }
| ARITHABORT { ON | OFF }
| COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
| CONCAT_NULL_YIELDS_NULL { ON | OFF }
| NUMERIC_ROUNDABORT { ON | OFF }
| QUOTED_IDENTIFIER { ON | OFF }
| RECURSIVE_TRIGGERS { ON | OFF }
}
<temporal_history_retention>::= TEMPORAL_HISTORY_RETENTION { ON | OFF }
Arguments
database_name
Имя изменяемой базы данных.
CURRENT
CURRENT
выполняет действие в текущей базе данных.
CURRENT
работает не со всеми параметрами и не во всех контекстах. Если CURRENT
не работает, укажите имя базы данных.
< > auto_option ::=
Управляет автоматическими параметрами.
AUTO_CREATE_STATISTICS { ON | OFF }
ON
Оптимизатор запросов в случае необходимости создает статистику по отдельным столбцам в предикатах запросов, чтобы улучшить планы запросов и повысить производительность запросов. Такая статистика по отдельным столбцам создается, когда оптимизатор запросов компилирует запросы. Статистика по отдельным столбцам создается только для столбцов, ни один из которых не является первым столбцом в существующем объекте статистики.
Значение по умолчанию — ON. Для большинства баз данных рекомендуется использовать значение по умолчанию.
OFF
Оптимизатор запросов не создает статистику по отдельным столбцам в предикатах запросов во время компиляции запросов. Отключение этого параметра может повлечь создание неоптимальных планов запросов и снижение производительности запросов.
You can determine this option's status by examining the
is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining theIsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.For more information, see the "Statistics options" section in Statistics.
INCREMENTAL = ON | ОТ
Присваивает AUTO_CREATE_STATISTICS значение ON, а INCREMENTAL — значение ON. Он создает автоматически создаваемые статистики как добавочные везде, где поддерживаются добавочные статистики. Значение по умолчанию — OFF. For more information, see CREATE STATISTICS.
AUTO_SHRINK { ON | OFF }
ON
Файлы базы данных являются кандидатами на периодическое сжатие. Если у вас нет определенного требования, не устанавливайте параметр базы данных AUTO_SHRINK значение ON. Дополнительные сведения см. в разделе Сжатие базы данных.
И файлы данных, и файлы журналов могут быть автоматически сжаты. AUTO_SHRINK уменьшает размер журнала транзакций только в том случае, если вы выбрали простую модель восстановления базы данных или создали резервную копию журнала. Если этот параметр установлен в состояние OFF, файлы базы данных не будут автоматически сжиматься при периодической проверке на неиспользуемое пространство.
При включенном параметре AUTO_SHRINK файлы будут сжаты, если более 25 процентов файла содержит неиспользуемое пространство. Параметр вызывает сжатие файла в один из двух размеров. Он сжимает до большего, если:
- размер, в котором 25 процентов файла не используется;
- размер файла при его создании.
Нельзя сжать базу данных, находящуюся в состоянии только для чтения.
OFF
Файлы базы данных не будут автоматически сжаты во время периодических проверок неиспользуемого пространства.
You can determine this option's status by examining the is_auto_shrink_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoShrink
property of the DATABASEPROPERTYEX function.
Note
В автономной базе данных параметр AUTO_SHRINK недоступен.
AUTO_UPDATE_STATISTICS { ON | OFF }
ON
Указывает, что оптимизатор запросов обновляет статистику, если она используется в запросе и может оказаться устаревшей. Статистика становится устаревшей, после того как операции вставки, обновления, удаления или слияния изменяют распределение данных в таблице или индексированном представлении. Оптимизатор запросов определяет, когда статистика может оказаться устаревшей, подсчитывая операции изменения данных с момента последнего обновления статистики и сравнивая количество изменений с пороговым значением. Пороговое значение основано на количестве строк в таблице или индексированном представлении.
Оптимизатор запросов проверяет наличие устаревшей статистики перед компиляцией запроса и выполняет кэшированный план запроса. Оптимизатор запросов с помощью столбцов, таблиц и индексированных представлений в предикате запроса определяет, какая статистика могла устареть. Оптимизатор запросов определяет эти сведения перед компиляцией запроса. Перед запуском кэшированного плана запроса ядро СУБД проверяет, ссылается ли план запроса на актуальную статистику.
Параметр AUTO_UPDATE_STATISTICS применяется к статистике, создаваемой для индексов и отдельных столбцов в предикатах запросов, и к статистике, создаваемой инструкцией CREATE STATISTICS. Этот параметр также применяется к отфильтрованной статистике.
Значение по умолчанию — ON. Для большинства баз данных рекомендуется использовать значение по умолчанию.
Используйте параметр AUTO_UPDATE_STATISTICS_ASYNC, чтобы указать режим обновления статистики: синхронный или асинхронный.
OFF
Указывает, что оптимизатор запросов не обновляет статистику, если она используется в запросе. Оптимизатор запросов также не обновляет статистику, когда она становится устаревшей. Отключение этого параметра может повлечь создание неоптимальных планов запросов и снижение производительности запросов.
You can determine this option's status by examining the is_auto_update_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoUpdateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the database-wide statistics options" in Statistics.
AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ON
Указывает, что обновление статистики для параметра AUTO_UPDATE_STATISTICS выполняется асинхронно. Оптимизатор запросов не ожидает завершения обновления статистики перед компиляцией запросов.
Установка этого параметра в состояние ON не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в состояние ON.
По умолчанию параметр AUTO_UPDATE_STATISTICS_ASYNC имеет значение OFF, а оптимизатор запросов обновляет статистику в синхронном режиме.
OFF
Указывает, что обновление статистики для параметра AUTO_UPDATE_STATISTICS выполняется синхронно. Оптимизатор запросов ожидает завершения обновления статистики перед компиляцией запросов.
Установка этого параметра в значение OFF не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в значение ON.
You can determine this option's status by examining the is_auto_update_stats_async_on
column in the sys.databases catalog view.
For more information that describes when to use synchronous or asynchronous statistics updates, see the section "Using the database-wide statistics options" in Statistics.
< > automatic_tuning_option ::=
Controls automatic options for Automatic tuning.
FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF }
Enables or disables FORCE_LAST_GOOD_PLAN
Automatic tuning option.
DEFAULT
Значение по умолчанию для Управляемый экземпляр SQL Azure — ON.
ON
Ядро СУБД автоматически включает последний известный удачный план для Transact-SQL запросов, когда новый план запроса приводит к снижению производительности. Ядро СУБД непрерывно отслеживает производительность запроса Transact-SQL в форсированном плане. При наличии повышения производительности ядро СУБД продолжает использовать последний известный хороший план. Если повышение производительности не обнаружено, ядро СУБД создает новый план запроса. The statement fails if the Query Store isn't enabled, or isn't in Read-Write mode. Это значение по умолчанию.
OFF
The Database Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. Однако эти рекомендации не применяются автоматически. Пользователь может отслеживать активные рекомендации и устранять выявленные проблемы, применяя сценарии Transact-SQL, которые отображаются в представлении.
< > change_tracking_option ::=
Определяет параметры отслеживания изменений. Отслеживание изменений можно включить или отключить, а также установить или изменить параметры. For examples, see the Examples section later in this article.
ON
Включает отслеживание изменений для базы данных. При включении отслеживания изменений также необходимо задать параметры AUTO CLEANUP и CHANGE RETENTION.
AUTO_CLEANUP = { ON | OFF }
ON
Данные отслеживания изменений автоматически удаляются по истечении заданного срока хранения.
OFF
Данные отслеживания изменений не удаляются из базы данных.
CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
Указывает минимальный срок хранения данных отслеживания изменений в базе данных. Данные удаляются, только если для параметра AUTO_CLEANUP установлено значение ON.
retention_period is an integer that specifies the numerical component of the retention period.
The default retention period is 2 days. Минимальный срок хранения составляет 1 минуту. The default retention type is DAYS.
OFF
Отключает отслеживание изменений для базы данных. Перед отключением отслеживания изменений для базы данных предварительно отключите отслеживание изменений для всех таблиц.
< > cursor_option ::=
Управляет параметрами курсора.
CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ON
Любые курсоры, открытые при фиксации или откате транзакции, закрываются.
OFF
Курсоры остаются открытыми при завершении транзакции; откат транзакции закрывает любые курсоры (кроме тех, которые имеют свойства INSENSITIVE или STATIC).
Настройки уровня соединения, которые установлены с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для CURSOR_CLOSE_ON_COMMIT. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая CURSOR_CLOSE_ON_COMMIT в значение OFF для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET CURSOR_CLOSE_ON_COMMIT.
You can determine this option's status by examining the is_cursor_close_on_commit_on
column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function. Курсор неявно освобождается только при отключении. For more information, see DECLARE CURSOR.
< > db_encryption_option ::=
Определяет параметры шифрования базы данных.
ENCRYPTION { ON | OFF }
Включает шифрование базы данных (ON) или отключает его (OFF). Дополнительные сведения о шифровании баз данных см. в прозрачного шифрования данных (TDE) и прозрачного шифрования данных для базы данных SQL Azure, управляемого экземпляра SQL Azure и Azure Synapse Analytics.
Если шифрование включено на уровне базы данных, все группы файлов шифруются. Все новые группы файлов наследуют зашифрованное свойство. Если для любой группы файлов в базе данных задано значение READ ONLY, операция шифрования базы данных завершается ошибкой.
You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.
< > delayed_durability_option ::=
Управляет тем, является ли фиксация транзакций полностью устойчивой или отложенной устойчивой.
DISABLED
Все транзакции, следующие за
SET DISABLED
, являются полностью устойчивыми. Все параметры устойчивости, заданные в блоке ATOMIC или инструкции COMMIT, не учитываются.ALLOWED
Все транзакции, следующие за
SET ALLOWED
, являются полностью устойчивыми или отложенными устойчивыми в зависимости от параметра устойчивости, заданного в блоке ATOMIC или инструкции COMMIT.FORCED
Все транзакции, следующие за
SET FORCED
, являются отложенными устойчивыми. Все параметры устойчивости, заданные в блоке ATOMIC или инструкции COMMIT, не учитываются.
< > PARAMETERIZATION_option ::=
Управляет параметром параметризации.
ПАРАМЕТРИЗАЦИЯ { SIMPLE | ПРИНУДИТЕЛЬНО }
SIMPLE
Запросы параметризуются на основании поведения базы данных по умолчанию.
FORCED
SQL Server параметризирует все запросы в базе данных.
The current setting of this option can be determined by examining the is_parameterization_forced
column in the sys.databases catalog view.
< > query_store_options ::=
ON | OFF | CLEAR [ ALL ]
Указывает, включено ли хранилище запросов в этой базе данных, а также управляет удалением содержимого хранилища запросов.
ON
Включает хранилище запросов.
OFF
Отключает хранилище запросов. Это значение по умолчанию.
CLEAR
Удаляет содержимое хранилища запросов.
OPERATION_MODE
Описывает режим работы хранилища запросов. Допустимые значения: READ_ONLY и READ_WRITE. В режиме READ_WRITE хранилище запросов собирает и сохраняет план запросов и статистические данные о выполнении. В режиме READ_ONLY можно считывать данные из хранилища запросов, но новые сведения не добавляются. Если максимальное выделенное пространство хранилища запросов было исчерпано, хранилище запросов изменяет режим работы на READ_ONLY.
CLEANUP_POLICY
Описывает политику хранения данных хранилища запросов. STALE_QUERY_THRESHOLD_DAYS определяет количество дней хранения сведений о запросе в хранилище. STALE_QUERY_THRESHOLD_DAYS is type bigint. Значение по умолчанию — 30. For SQL Database Basic edition, default is 7 days.
DATA_FLUSH_INTERVAL_SECONDS
Определяет частоту, с которой данные, записанные в хранилище запросов, сохраняются на диск. Для оптимизации производительности данные, собранные хранилищем запросов, асинхронно записываются на диск. Для настройки частоты этой асинхронной передачи используется аргумент DATA_FLUSH_INTERVAL_SECONDS. DATA_FLUSH_INTERVAL_SECONDS is type bigint. The default value is 900 (15 min).
MAX_STORAGE_SIZE_MB
Определяет свободное место, выделенное для хранилища запросов. MAX_STORAGE_SIZE_MB is type bigint. The default value is 100 MB.
Ограничение MAX_STORAGE_SIZE_MB
не применяется строго. Размер хранилища проверяется только в том случае, если хранилище запросов записывает данные на диск. Этот интервал задается параметром DATA_FLUSH_INTERVAL_SECONDS
или параметром диалогового окна хранилища запросов Management Studio Интервал записи данных на диск. Значение по умолчанию — 900 секунд (или 15 минут).
Если хранилище запросов нарушило ограничение MAX_STORAGE_SIZE_MB
между проверками размера хранилища, оно переходит в режим только для чтения. Если параметр SIZE_BASED_CLEANUP_MODE
включен, также активируется механизм очистки для принудительного применения ограничения MAX_STORAGE_SIZE_MB
.
После очистки достаточного пространства режим хранилища запросов автоматически переключается на чтение и запись.
Important
- If you think that your workload capture needs more than 10 GB of disk space, you should probably rethink and optimize your workload to reuse query plans (for example using forced parameterization, or adjust the Query Store configurations.
- Начиная с SQL Server 2019 (15.x) и в База данных SQL Azure можно задать
QUERY_CAPTURE_MODE
значение CUSTOM для дополнительного управления политикой отслеживания запросов. -
MAX_STORAGE_SIZE_MB
Ограничение параметра составляет 10 240 МБ на Управляемый экземпляр SQL Azure.
INTERVAL_LENGTH_MINUTES
Определяет временной интервал вычисления статистических данных о среде выполнения в хранилище запросов. Для оптимизации использования свободного места статистические данные о среде выполнения в хранилище вычисляются для фиксированного временного интервала. Этот интервал настраивается с помощью аргумента INTERVAL_LENGTH_MINUTES. INTERVAL_LENGTH_MINUTES is type bigint. The default value is 60.
SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
Определяет, активируется ли очистка автоматически, когда общий объем данных приближается к максимальному размеру.
OFF
Очистка на основе размера не активируется автоматически.
AUTO
Size-based cleanup is automatically activated when size on disk reaches 90% of max_storage_size_mb. Эта очистка сначала удаляет самые дешевые и самые старые запросы. It stops at approximately 80% of max_storage_size_mb. Это значение конфигурации по умолчанию.
SIZE_BASED_CLEANUP_MODE is type nvarchar.
QUERY_CAPTURE_MODE { ALL | AUTO | CUSTOM | NONE }
Определяет режим записи текущего активного запроса.
ALL
Записываются все запросы.
AUTO
Записываются соответствующие запросы на основе показателя выполнения и объема потребления ресурсов. Это значение конфигурации по умолчанию для База данных SQL Azure.
NONE
Запись новых запросов останавливается. Хранилище запросов продолжает собирать статистику компиляции и среды выполнения для запросов, которые уже были записаны. Используйте эту конфигурацию с осторожностью, так как вы можете пропустить запись важных запросов.
QUERY_CAPTURE_MODE is type nvarchar.
MAX_PLANS_PER_QUERY
Целое число, представляющее максимальное количество поддерживаемых планов для каждого запроса. MAX_PLANS_PER_QUERY is type int. The default value is 200.
WAIT_STATS_CAPTURE_MODE { ON | OFF }
Определяет, фиксируются ли статистические данные ожидания для каждого запроса.
ON
Информация о статистике ожидания по запросам отслеживается. Это значение является значением конфигурации по умолчанию.
OFF
Данные статистики ожидания для каждого запроса не записываются.
< > query_capture_policy_option_list :: =
Управляет параметрами политики записи для хранилища запросов. За исключением STALE_CAPTURE_POLICY_THRESHOLD, эти параметры определяют условия OR, которые должны выполняться для запросов, записываемых в определенное пороговое значение устаревшей политики записи.
STALE_CAPTURE_POLICY_THRESHOLD = integer { DAYS | HOURS }
Определяет период интервала ознакомления для определения того, нужно ли записать запрос. Значение по умолчанию — 1 день, можно указать от 1 часа до 7 дней.
EXECUTION_COUNT = integer
Определяет количество выполнений запроса в течение ознакомительного периода. Значение по умолчанию — 30, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен быть выполнен по меньшей мере 30 раз за один день, чтобы быть сохраненным в хранилище запросов. EXECUTION_COUNT is type int.
TOTAL_COMPILE_CPU_TIME_MS = integer
Определяет общее время ЦП, затраченное на компиляцию, которое запрос использовал за ознакомительный период. Значение по умолчанию — 1000, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен иметь общее время ЦП, затраченное на компиляцию, не менее одной секунды за один день, чтобы быть сохраненным в хранилище запросов. TOTAL_COMPILE_CPU_TIME_MS is type int.
TOTAL_EXECUTION_CPU_TIME_MS = integer
Определяет общее время ЦП, затраченное на выполнение, которое запрос использовал за ознакомительный период. Значение по умолчанию — 100, то есть для порогового значения устаревшей политики записи по умолчанию запрос должен иметь общее время ЦП, затраченное на выполнение, не менее 100 мс за один день, чтобы быть сохраненным в хранилище запросов. TOTAL_EXECUTION_CPU_TIME_MS is type int.
< > snapshot_option ::=
Определяет уровень изоляции транзакции.
ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ON
Включает параметр моментальных снимков на уровне базы данных. Если параметр включен, инструкции DML начинают создавать версии строк, даже если ни одна транзакция не использует изоляцию моментальных снимков. После установки этого параметра транзакции могут задавать уровень изоляции транзакций SNAPSHOT. Если транзакция выполняется на уровне изоляции SNAPSHOT, всем инструкциям видны данные из моментального снимка в состоянии, которое существовало в момент начала транзакции. Если транзакция выполняется с уровнем изоляции SNAPSHOT и обращается к данным нескольких баз данных, то либо параметр ALLOW_SNAPSHOT_ISOLATION должен быть установлен в состояние ON во всех базах данных, либо каждая инструкция в транзакции должна использовать подсказки блокировки при любом обращении предложения FROM к таблице базы данных, в которой параметр ALLOW_SNAPSHOT_ISOLATION установлен в состояние OFF.
OFF
Отключает параметр моментальных снимков на уровне базы данных. Транзакции не могут указывать уровень изоляции SNAPSHOT.
Если вы изменяете состояние ALLOW_SNAPSHOT_ISOLATION (из ON в OFF или из OFF в ON), инструкция ALTER DATABASE не возвращает управление вызвавшей ее программе, пока все существующие транзакции в базе данных не будут зафиксированы. Если база данных уже находится в состоянии, указанном в инструкции ALTER DATABASE, управление вызвавшей программе будет возвращено немедленно. If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Если инструкция ALTER DATABASE отменена, база данных останется в состоянии, в котором она находилась при запуске ALTER DATABASE. The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Если snapshot_isolation_state_desc = IN_TRANSITION_TO_ON
, оператор ALTER DATABASE ... ALLOW_SNAPSHOT_ISOLATION OFF
приостанавливает шесть секунд и повторяет операцию.
Изменить состояние ALLOW_SNAPSHOT_ISOLATION невозможно, если база данных находится в режиме OFFLINE.
Параметры ALLOW_SNAPSHOT_ISOLATION можно изменить для баз данных master
, model
, msdb
и tempdb
. Параметр сохраняется каждый раз, когда экземпляр ядро СУБД останавливается и перезапускается при изменении параметраtempdb
. При изменении настройки для базы данных model
эта настройка становится значением по умолчанию для любых вновь создаваемых баз данных, за исключением tempdb
.
По умолчанию этот параметр равен ON для баз данных master
и msdb
.
The current setting of this option can be determined by examining the snapshot_isolation_state
column in the sys.databases catalog view.
READ_COMMITTED_SNAPSHOT { ON | OFF }
ON
Включает параметр READ_COMMITTED_SNAPSHOT на уровне базы данных. Если параметр включен, инструкции DML начинают создавать версии строк, даже если ни одна транзакция не использует изоляцию моментальных снимков. После включения этого параметра транзакции, указывающие уровень изоляции READ COMMITTED, используют управление версиями строк вместо блокировки. Данные моментального снимка видны всем инструкциям в состоянии, которое существовало на момент начала выполнения инструкции, если транзакция выполняется с уровнем изоляции READ COMMITTED.
OFF
Отключает параметр уровня изоляции моментальных снимков READ COMMITTED на уровне базы данных. Транзакции с уровнем изоляции READ COMMITTED используют блокировку.
Чтобы установить параметр READ_COMMITTED_SNAPSHOT равным ON или OFF, с базой данных не должно быть активных соединений, за исключением соединения, выполняющего команду ALTER DATABASE. Однако это не означает, что база данных должна находиться в однопользовательском режиме. Изменить состояние этого параметра невозможно, если база данных находится в режиме OFFLINE.
Параметр READ_COMMITTED_SNAPSHOT не может иметь значение ON для системных баз данных master
, tempdb
или msdb
. При изменении настройки для базы данных model
эта настройка становится значением по умолчанию для любых создаваемых новых баз данных, за исключением tempdb
.
The current setting of this option can be determined by examining the is_read_committed_snapshot_on
column in the sys.databases catalog view.
Warning
При создании таблицы с УСТОЙЧИВОСТЬЮ = SCHEMA_ONLY, а READ_COMMITTED_SNAPSHOT впоследствии изменяется с помощью ALTER DATABASE, данные в таблице теряются.
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
ON
Если уровень изоляции транзакции установлен в любое значение ниже SNAPSHOT, все интерпретированные операции Transact-SQL в таблицах, оптимизированных для памяти, выполняются с уровнем изоляции SNAPSHOT. Примеры уровней изоляции ниже, чем моментальный снимок — READ COMMITTED или READ UNCOMMITTED. Эти операции выполняются независимо от того, установлен ли уровень изоляции транзакции явно на уровне сеанса или неявно используется значение по умолчанию.
OFF
Не повышает уровень изоляции транзакции для интерпретированных операций Transact-SQL в таблицах, оптимизированных для памяти.
Изменить состояние MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT невозможно, если база данных находится в режиме OFFLINE.
Значение по умолчанию — OFF.
The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on
column in the sys.databases catalog view.
< > sql_option ::=
Управляет параметрами соответствия ANSI на уровне базы данных.
ANSI_NULL_DEFAULT { ON | OFF }
Определяет значение по умолчанию, NULL или NOT NULL, для столбцов определяемых пользователем типов CLR, для которых в инструкциях CREATE TABLE или ALTER TABLE не указана явно допустимость значений NULL. Столбцы, определенные с ограничениями, следуют правилам ограничений независимо от того, какой этот параметр может быть.
ON
Значение по умолчанию — NULL.
OFF
Значением по умолчанию является NOT NULL.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют настройки уровня базы данных по умолчанию для ANSI_NULL_DEFAULT. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_NULL_DEFAULT в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_NULL_DFLT_ON.
Для совместимости ANSI при установке параметра базы данных ANSI_NULL_DEFAULT в состояние ON изменяется значение по умолчанию базы данных на значение NULL.
You can determine this option's status by examining the is_ansi_null_default_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullDefault
property of the DATABASEPROPERTYEX function.
ANSI_NULLS { ON | OFF }
ON
Результатом любого сравнения со значением NULL будет UNKNOWN.
OFF
Сравнение значений, отличных от Юникода, с значением NULL, равное TRUE, если оба значения равны NULL.
Important
В будущей версии SQL Server ANSI_NULLS всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для ANSI_NULLS. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_NULLS в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_NULLS.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ANSI_NULLS также должен быть установлен в ON.
You can determine this option's status by examining the is_ansi_nulls_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiNullsEnabled
property of the DATABASEPROPERTYEX function.
ANSI_PADDING { ON | OFF }
ON
Строки перед преобразованием дополняются до одной и той же длины. Also padded to the same length before inserting to a varchar or nvarchar data type.
OFF
Inserts trailing blanks in character values into varchar or nvarchar columns. Also leaves trailing zeros in binary values that are inserted into varbinary columns. Значения не подгоняются под длину столбца.
Состояние OFF касается только определения новых столбцов.
Important
В будущей версии SQL Server ANSI_PADDING всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Рекомендуется всегда задавать для параметра ANSI_PADDING значение ON. При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр ANSI_PADDING должен быть установлен в ON.
char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. Конечные пробелы и нули отбрасываются, если параметр ANSI_PADDING имеет значение OFF. char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют настройки уровня базы данных по умолчанию для ANSI_PADDING. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_PADDING в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_PADDING.
You can determine this option's status by examining the is_ansi_padding_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiPaddingEnabled
property of the DATABASEPROPERTYEX function.
ANSI_WARNINGS { ON | OFF }
ON
В случае возникновения таких ситуаций, как деление на ноль, выдаются ошибки или предупреждения. Ошибки и предупреждения также возникают тогда, когда значения NULL появляются в агрегатных функциях.
OFF
Предупреждения не выводятся, а в таких ситуациях, как деление на ноль, возвращается NULL.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр SET ANSI_WARNINGS должен быть установлен в ON.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для ANSI_WARNINGS. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая ANSI_WARNINGS в значение ON для сеанса по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET ANSI_WARNINGS.
You can determine this option's status by examining the is_ansi_warnings_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAnsiWarningsEnabled
property of the DATABASEPROPERTYEX function.
ARITHABORT { ON | OFF }
ON
Запрос будет завершен, если во время его выполнения возникла ошибка переполнения или деления на ноль.
OFF
Когда возникает одна из этих ошибок, выводится предупреждающее сообщение. Запрос, пакет или транзакция продолжают выполняться, как если бы ошибки не произошло, даже если выводится предупреждение.
Important
SET ARITHABORT
необходимо включить (ON) при создании или внесении изменений в индексы в вычисляемых столбцах или индексированных представлениях.
You can determine this option's status by examining the is_arithabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsArithmeticAbortEnabled
property of the DATABASEPROPERTYEX function.
COMPATIBILITY_LEVEL = { 170 | 160 | 150 | 140 | 130 | 120 | 110 | 100 }
Дополнительные сведения см. в уровне совместимости ALTER DATABASE.
CONCAT_NULL_YIELDS_NULL { ON | OFF }
ON
Результатом операции объединения будет NULL, если любой из операндов — NULL. Например, объединение строки символов "Это" со значением NULL приведет к результату NULL вместо "Это".
OFF
Значение NULL будет обработано как пустая строка символов.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр CONCAT_NULL_YIELDS_NULL должен быть установлен в ON.
В будущей версии SQL Server CONCAT_NULL_YIELDS_NULL всегда будет включена, а все приложения, явно устанавливающие параметр OFF, будут вызывать ошибку. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.
Настройки уровня соединения, которые установлены с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для CONCAT_NULL_YIELDS_NULL. По умолчанию клиенты ODBC и OLE DB выдают параметр инструкции SET уровня подключения CONCAT_NULL_YIELDS_NULL значение ON для сеанса при подключении к экземпляру SQL Server. For more information, see SET CONCAT_NULL_YIELDS_NULL.
You can determine this option's status by examining the is_concat_null_yields_null_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNullConcat
property of the DATABASEPROPERTYEX function.
NUMERIC_ROUNDABORT { ON | OFF }
ON
Если в выражении происходит потеря точности, будет сформирована ошибка.
OFF
Потеря точности вызывает сообщения об ошибках, а результат округляется до точности столбца или переменной, в которых сохраняется результат.
Important
При создании или управлении индексами, основанными на вычисляемых столбцах или индексированных представлениях, параметр NUMERIC_ROUNDABORT должен быть установлен в OFF.
You can determine the status of this option in the is_numeric_roundabort_on
column in the sys.databases catalog view. You can also determine the status by examining the IsNumericRoundAbortEnabled
property of the DATABASEPROPERTYEX function.
QUOTED_IDENTIFIER { ON | OFF }
ON
Двойные кавычки могут использоваться для идентификаторов с разделителями.
Все строки, находящиеся в двойных кавычках, интерпретируются как идентификаторы объектов. Идентификаторы с разделителями не должны соответствовать правилам для идентификаторов Transact-SQL. Они могут быть ключевыми словами и включать символы, не разрешенные в идентификаторах Transact-SQL. Если двойная кавычка (
"
) является частью идентификатора, она может быть представлена двумя двойными кавычками (""
).OFF
Идентификаторы не могут быть заключены в кавычки и должны следовать всем правилам для идентификаторов Transact-SQL. Литералы могут разделяться как одинарными, так и двойными кавычками.
SQL Server также позволяет разделять идентификаторы квадратными скобками ([
и ]
). Идентификаторы в скобках могут использоваться всегда, независимо от значения параметра QUOTED_IDENTIFIER. For more information, see Database identifiers.
При создании таблицы параметр QUOTED IDENTIFIER всегда сохраняется как ON в метаданных таблицы. Параметр сохраняется, даже если при создании таблицы он был установлен на OFF.
Настройки уровня соединения, установленные с помощью инструкции SET, переопределяют параметры базы данных по умолчанию для QUOTED_IDENTIFIER. Клиенты ODBC и OLE DB задают параметр уровня соединения инструкции SET, устанавливая QUOTED_IDENTIFIER в значение ON, по умолчанию. Клиенты запускают инструкцию при подключении к экземпляру SQL Server. For more information, see SET QUOTED_IDENTIFIER.
You can determine this option's status by examining the is_quoted_identifier_on
column in the sys.databases catalog view. You can also determine the status by examining the IsQuotedIdentifiersEnabled
property of the DATABASEPROPERTYEX function.
RECURSIVE_TRIGGERS { ON | OFF }
ON
Рекурсивное срабатывание триггеров AFTER разрешено.
OFF
You can determine this option's status by examining the
is_recursive_triggers_on
column in the sys.databases catalog view. You can also determine the status by examining theIsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.Note
Если параметр RECURSIVE_TRIGGERS установлен в состояние OFF, будет запрещена только прямая рекурсия. Чтобы отключить косвенную рекурсию, нужно установить параметр сервера nested triggers в состояние 0.
You can determine this option's status by examining the is_recursive_triggers_on
column in the sys.databases catalog view or the IsRecursiveTriggersEnabled
property of the DATABASEPROPERTYEX function.
< > target_recovery_time_option ::=
target_recovery_time_option isn't supported on Azure SQL Managed Instance.
Указывает частоту косвенных контрольных точек для каждой базы данных. Starting with SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database uses indirect checkpoints. Для старых версий значение по умолчанию равно 0, указывающее, что база данных использует автоматические контрольные точки, частота которой зависит от параметра интервала восстановления экземпляра сервера. Корпорация Майкрософт рекомендует 1 минуту для большинства систем.
ЗАВЕРШЕНИЕ< WITH >::=
Указывает, когда откатывать незавершенные транзакции при переходе базы данных из одного состояния в другое. Если предложение завершения опущено, инструкция ALTER DATABASE будет бесконечно ожидать блокировки базы данных. Может быть указано только одно предложение завершения, которое должно следовать за предложением SET.
Note
Не все параметры базы данных могут использоваться с предложением WITH <termination>. For more information, see the table under Setting options of the "Remarks" section of this article.
ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Указывает, нужно ли откатить транзакцию через указанное количество секунд или немедленно.
NO_WAIT
Указывает, что запрос завершается ошибкой, если запрошенное состояние базы данных или изменение параметра не может завершиться немедленно. Завершение работы сразу же означает завершение без ожидания фиксации транзакции или отката.
< > temporal_history_retention ::=
TEMPORAL_HISTORY_RETENTION { ON | OFF }
По умолчанию используется флаг ON, но после операции восстановления на определенный момент времени автоматически устанавливается флаг OFF. Дополнительные сведения о том, как включить этот параметр, см. в разделе Настройка политики хранения.
ON
Default. Включает политику хранения темпоральной таблицы. Дополнительные сведения см. в статье Управление хранением данных журнала в темпоральных таблицах с системным управлением версиями.
OFF
Не выполняйте темпоральную политику хранения.
Set options
To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX
После установки параметра базы данных новое значение вступает в силу немедленно.
Вы можете изменить значения по умолчанию для любого из параметров базы данных для всех созданных баз данных. Для этого измените соответствующий параметр базы данных в системной базе данных model
.
Examples
A. включение изоляции моментального снимка для базы данных;
Следующий пример включает параметр платформы изоляции моментального снимка для базы данных AdventureWorks2022
.
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO
Результирующий набор показывает, что платформа изоляции моментального снимка включена.
name | snapshot_isolation_state | description |
---|---|---|
[database_name] | 1 | ON |
B. включение, изменение и отключение отслеживания изменений;
В следующем примере демонстрируется включение отслеживания изменений для базы данных AdventureWorks2022
и установка 2
-дневного срока хранения.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);
В следующем примере демонстрируется уменьшение срока хранения до 3
дней.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);
В следующем примере демонстрируется отключение отслеживания изменений для базы данных AdventureWorks2022
.
ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;
C. включение хранилища запросов;
В следующем примере включается хранилище запросов и настраиваются его параметры.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
QUERY_CAPTURE_MODE = AUTO,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60
);
D. включение хранилища запросов с использованием статистики ожидания;
В приведенном ниже примере включается хранилище запросов и настраиваются его параметры.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON
);
E. включение хранилища запросов с использованием параметров пользовательской политики записи.
В приведенном ниже примере включается хранилище запросов и настраиваются его параметры.
ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
OPERATION_MODE = READ_WRITE,
CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
DATA_FLUSH_INTERVAL_SECONDS = 900,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 60,
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON,
QUERY_CAPTURE_MODE = CUSTOM,
QUERY_CAPTURE_POLICY = (
STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
EXECUTION_COUNT = 30,
TOTAL_COMPILE_CPU_TIME_MS = 1000,
TOTAL_EXECUTION_CPU_TIME_MS = 100
)
);
Related content
- Statistics
- DATABASEPROPERTYEX (Transact-SQL)
- sys.databases
- sys.data_spaces
- sys.database_automatic_tuning_options
- sys.database_automatic_tuning_mode
- уровень совместимости ALTER DATABASE
- Зеркальное отображение базы данных ALTER DATABASE
- CREATE DATABASE
- Включение и отключение отслеживания изменений (SQL Server)
- УДАЛИТЬ БАЗУ ДАННЫХ (Transact-SQL)
- ЗАДАТЬ УРОВЕНЬ ИЗОЛЯЦИИ ТРАНЗАКЦИЙ (Transact-SQL)
- sp_configure
- рекомендации по мониторингу рабочих нагрузок с помощью хранилища запросов
* Azure Synapse
Аналитика*
Azure Synapse Analytics
Syntax
ALTER DATABASE { database_name }
SET
{
<optionspec> [ ,...n ]
}
;
<option_spec>::=
{
<auto_option>
| <db_encryption_option>
| <query_store_options>
| <result_set_caching>
| <snapshot_option>
}
;
<auto_option> ::=
{
AUTO_CREATE_STATISTICS { OFF | ON }
}
<db_encryption_option> ::=
{
ENCRYPTION { ON | OFF }
}
<query_store_option> ::=
{
QUERY_STORE { OFF | ON }
}
<result_set_caching_option> ::=
{
RESULT_SET_CACHING { ON | OFF }
}
<snapshot_option> ::=
{
READ_COMMITTED_SNAPSHOT { ON | OFF }
}
Arguments
database_name
Имя изменяемой базы данных.
< > auto_option ::=
Управляет автоматическими параметрами.
AUTO_CREATE_STATISTICS { ON | OFF }
ON
Оптимизатор запросов в случае необходимости создает статистику по отдельным столбцам в предикатах запросов, чтобы улучшить планы запросов и повысить производительность запросов. Такая статистика по отдельным столбцам создается, когда оптимизатор запросов компилирует запросы. Статистика по отдельным столбцам создается только для столбцов, ни один из которых не является первым столбцом в существующем объекте статистики.
Значение по умолчанию — ON. Для большинства баз данных рекомендуется использовать значение по умолчанию.
OFF
Оптимизатор запросов не создает статистику по отдельным столбцам в предикатах запросов во время компиляции запросов. Отключение этого параметра может повлечь создание неоптимальных планов запросов и снижение производительности запросов.
Эта команда должна выполняться при подключении к базе данных user.
You can determine this option's status by examining the is_auto_create_stats_on
column in the sys.databases catalog view. You can also determine the status by examining the IsAutoCreateStatistics
property of the DATABASEPROPERTYEX function.
For more information, see the section "Using the database-wide statistics options" in Statistics.
< > db_encryption_option ::=
Определяет параметры шифрования базы данных.
ENCRYPTION { ON | OFF }
ON
Включает шифрование базы данных.
OFF
Отключает шифрование базы данных.
Дополнительные сведения о шифровании баз данных см. в прозрачного шифрования данных (TDE) и прозрачного шифрования данных для базы данных SQL Azure, управляемого экземпляра SQL Azure и Azure Synapse Analytics.
Если шифрование включено на уровне базы данных, все группы файлов шифруются. Все новые группы файлов наследуют зашифрованное свойство. Если для любой группы файлов в базе данных задано значение READ ONLY, операция шифрования базы данных завершается ошибкой.
Состояние шифрования базы данных и состояние сканирования шифрования можно просмотреть с помощью динамического административного представления sys.dm_database_encryption_keys
.
< > query_store_option ::=
Указывает, включено ли хранилище запросов в этом хранилище данных.
QUERY_STORE { ON | OFF }
ON
Включает хранилище запросов.
OFF
Отключает хранилище запросов. OFF — значение по умолчанию.
Note
Для Azure Synapse Analytics необходимо выполнить ALTER DATABASE SET QUERY_STORE
из пользовательской базы данных. Выполнение этой инструкции из другого экземпляра хранилища данных не поддерживается.
Note
Для Azure Synapse Analytics хранилище запросов можно включить как на других платформах, но дополнительные параметры конфигурации не поддерживаются.
< > result_set_caching_option ::=
Applies to: Azure Synapse Analytics
Указывает, кэшируется ли результат запроса в базе данных.
RESULT_SET_CACHING { ON | OFF}
ON
Указывает, что результирующие наборы запросов, возвращаемые из этой базы данных, кэшируются в базе данных.
OFF
Указывает, что результирующие наборы запросов, возвращаемые из этой базы данных, не кэшируются в базе данных.
Эта команда должна выполняться при подключении к базе данных master
. Изменение данного параметра базы данных применяется немедленно. Затраты на хранение связаны с кэшированием результирующих наборов запроса. После отключения кэширования результатов для базы данных ранее сохраненный кэш результатов немедленно удаляется из хранилища Azure Synapse.
Выполните эту команду, чтобы проверить конфигурацию кэширования результирующего набора базы данных. Если кэширование результирующих наборов включено, is_result_set_caching_on
возвращает значение 1.
SELECT name, is_result_set_caching_on FROM sys.databases
WHERE name = <'Your_Database_Name'>
Выполните эту команду, чтобы проверить, был ли запрос выполнен с использованием кэшированного результата. Столбец result_cache_hit
возвращает значение 1 для попадания кэша, 0 для пропуска кэша и отрицательных значений по причинам, почему кэширование результирующих наборов не использовалось. Check sys.dm_pdw_exec_requests for details.
SELECT request_id, command, result_cache_hit FROM sys.dm_pdw_exec_requests
WHERE request_id = <'Your_Query_Request_ID'>
Note
Result set caching should not be used in conjunction with DECRYPTBYKEY. If this cryptographic function must be used, ensure you have result set caching disabled (either at session-level or database-level) at the time of execution.
Important
Операции по созданию кэша результирующего набора и извлечению данных из кэша выполняются в управляющем узле экземпляра хранилища данных. Если кэширование результирующего набора включено, выполнение запросов, возвращающих большие (например, более одного миллиона строк) наборы, может привести к высокой загрузке ЦП на управляющем узле и снизить общую скорость реакции экземпляра. Как правило, такие запросы используются в ходе исследования данных, а также при выполнении операций извлечения, преобразования и загрузки. Чтобы избежать чрезмерной загрузки управляющего узла и снижения производительности, перед выполнение запросов такого типа пользователям следует отключить кэширование результирующего набора для базы данных.
Дополнительные сведения о настройке производительности при кэшировании результирующего набора см. в статье Руководство по настройке производительности.
Permissions
Для задания параметра RESULT_SET_CACHING пользователю требуется имя входа участника на уровне сервера (созданное процессом подготовки) или членство в роли базы данных dbmanager
.
< > snapshot_option ::=
Applies to: Azure Synapse Analytics
Задает уровень изоляции транзакции в базе данных.
READ_COMMITTED_SNAPSHOT { ON | OFF }
ON
Включает параметр READ_COMMITTED_SNAPSHOT на уровне базы данных.
OFF
Отключает параметр READ_COMMITTED_SNAPSHOT на уровне базы данных.
Эта команда должна выполняться при подключении к базе данных master
. Включение или отключение READ_COMMITTED_SNAPSHOT для пользовательской базы данных убивает все открытые подключения к этой базе данных. Это изменение следует внести во время периода обслуживания базы данных или подождите, пока не будет активного подключения к базе данных, за исключением подключения, выполняемого командой ALTER DATABASE. База данных не обязательно должна находиться в однопользовательском режиме. Изменение параметра READ_COMMITTED_SNAPSHOT на уровне сеанса не поддерживается. Чтобы проверить этот параметр для базы данных, проверьте столбец is_read_committed_snapshot_on
в sys.databases
.
В базе данных с включенным READ_COMMITTED_SNAPSHOT запросы могут испытывать более низкую производительность из-за сканирования версий, если присутствуют несколько версий данных. Длительные транзакции также могут привести к увеличению размера базы данных. Эта проблема возникает при изменении данных транзакциями, блокирующими очистку версий.
Permissions
Чтобы задать параметр READ_COMMITTED_SNAPSHOT, пользователю необходимо разрешение ALTER для базы данных.
Examples
Проверка настройки статистики для базы данных
SELECT name, is_auto_create_stats_on FROM sys.databases
Включение хранилище запросов для базы данных
ALTER DATABASE [database_name]
SET QUERY_STORE = ON;
Включение кэширования результирующих наборов для базы данных
-- Run this command when connecting to the MASTER database
ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;
Проверка кэширования результирующих наборов для базы данных
SELECT name, is_result_set_caching_on
FROM sys.databases;
Включение параметра READ_COMMITTED_SNAPSHOT для базы данных
Выполните эту команду при подключении к базе данных master
.
ALTER DATABASE MyDatabase
SET READ_COMMITTED_SNAPSHOT ON;
Related content
Microsoft Fabric
Microsoft Fabric
Используется ALTER DATABASE ... SET
для управления хранилищем Microsoft Fabric.
Syntax
-- Microsoft Fabric Data Warehouse
ALTER DATABASE { warehouse_name | CURRENT }
SET
{
<option_spec> [ ,...n ]
}
<option_spec> ::=
{
<data_lake_log_publishing>
| <vorder>
| <timestamp>
| <result_set_caching>
}
;
<data_lake_log_publishing> ::=
{
DATA_LAKE_LOG_PUBLISHING { PAUSED | AUTO }
}
<vorder> ::=
{
VORDER = OFF
}
<timestamp> ::=
{
TIMESTAMP = {CURRENT_TIMESTAMP | 'YYYY-MM-DDTHH:MM:SS.SS' }
}
<result_set_caching> ::=
{
RESULT_SET_CACHING { ON | OFF }
}
Arguments
DATA_LAKE_LOG_PUBLISHING
Приостановка или возобновление публикации журнала Delta Lake. Дополнительные сведения см. в разделе "Публикация журналов Delta Lake".
VORDER
Может отключить поведение V-Order. Дополнительные сведения см. в разделе об отключении поведения V-Order в хранилище.
TIMESTAMP
Обновляет метку времени для существующего моментального снимка хранилища в хранилище данных Fabric. Метка времени должна быть указана в часовом поясе UTC. For more information, see Warehouse snapshots.
RESULT_SET_CACHING
Включает или отключает кэширование результирующих наборов (предварительная версия) для текущего элемента. Дополнительные сведения см. в разделе "Кэширование результирующих наборов".
Permissions
Пользователь должен быть членом ролей администратора, участника или участника в рабочей области Fabric.
Examples
A. Приостановка публикации журналов Delta Lake
Следующая команда T-SQL приостанавливает публикацию журнала Delta Lake в текущем контексте хранилища.
ALTER DATABASE CURRENT SET DATA_LAKE_LOG_PUBLISHING = PAUSED;
To check the current status of Delta Lake Log publishing on all warehouses, of your workspace, use the following T-SQL code to query sys.databases in a new query window:
SELECT [name], [DATA_LAKE_LOG_PUBLISHING_DESC] FROM sys.databases;
B. Установка и проверка кэширования результирующих наборов (предварительная версия)
Следующая команда T-SQL позволит элементу MyDataWarehouse
начать создание и применение кэша результирующих SELECT
наборов (предварительная версия) к применимым запросам. Дополнительные сведения см. в разделе "Кэширование результирующих наборов".
ALTER DATABASE [MyDataWarehouse] SET RESULT_SET_CACHING ON;
The column is_result_set_caching_on
from sys.databases can then be checked to confirm that result set caching (preview) has been enabled.
SELECT [name], [is_result_set_caching_on] FROM sys.databases;