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


Параметры ALTER DATABASE SET (Transact SQL)

Задает параметры базы данных в 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_PLANAutomatic 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. Дополнительные сведения о том, как включить этот параметр, см. в разделе Настройка политики хранения.

< > 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, выполните следующие действия.

  1. Установите AUTO_CREATE_STATISTICS_ASYNC в значение OFF.

  2. 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 см. в разделе:

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 the IsRecursiveTriggersEnabled 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
      )
    );

* База данных 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 the IsAutoUpdateStatistics 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 the UserAccess 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 the IsRecursiveTriggersEnabled 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 ::=

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
      )
    );

* Управляемый экземпляр 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 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 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_PLANAutomatic 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 the IsRecursiveTriggersEnabled 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 ::=

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
      )
    );

* 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;

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;