ALTER DATABASE (Transact-SQL)

Изменяет определенные параметры конфигурации базы данных.

Эта статья приводит синтаксис, аргументы, комментарии, разрешения и примеры для любых выбранных продуктов SQL.

Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.

Выбор продукта

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

* SQL Server *  

 

Обзор: SQL Server

В SQL Server эта инструкция изменяет базу данных или файлы и файловые группы, связанные с базой данных. ALTER DATABASE добавляет или удаляет файлы и файловые группы из базы данных, изменяет атрибуты базы данных или его файлов и файловых групп, изменяет параметры сортировки базы данных и задает параметры базы данных. Не удается изменить моментальные снимки базы данных. Чтобы изменить параметры базы данных, связанные с репликацией, используйте процедуру sp_replicationdboption.

Так как синтаксис ALTER DATABASE имеет значительную длину, мы разделили его описание на несколько статей.

Статья Описание
ALTER DATABASE В этой статье приведен синтаксис и сопутствующие сведения по изменению имени и параметров сортировки базы данных.
Параметры инструкции ALTER DATABASE для файлов и файловых групп Синтаксис для добавления или удаления файлов и файловых групп в базе данных, для изменения атрибутов файлов и файловых групп, а также дополнительная информация об этом.
Параметры ALTER DATABASE SET Синтаксис для изменения атрибутов базы данных с помощью параметров SET команды ALTER DATABASE, а также дополнительная информация об этом.
Зеркальное отображение базы данных ALTER DATABASE Синтаксис параметров SET команды ALTER DATABASE, используемых в процессе зеркального отображения базы данных, а также дополнительная информация об этом.
ALTER DATABASE SET HADR Предоставляет синтаксис и связанные сведения для параметров групп доступности AlwaysOn alter DATABASE для настройки базы данных-получателя на вторичной реплика группы доступности AlwaysOn.
Уровень совместимости ALTER DATABASE Синтаксис параметров SET инструкции ALTER DATABASE, имеющих отношение к уровням совместимости базы данных, и дополнительная информация об этом.
ALTER DATABASE SCOPED CONFIGURATION Обеспечивает синтаксис для конфигурации для с областью базы данных, используемый для параметров уровня отдельной базы данных, таких как выполнение запроса и оптимизация запросов.

Синтаксис

-- SQL Server Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>
  | SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<file_and_filegroup_options>::=
  <add_or_modify_files>::=
  <filespec>::=
  <add_or_modify_filegroups>::=
  <filegroup_updatability_option>::=

<option_spec>::=
{
  | <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <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_options>
  | <HADR_options>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}

Аргументы

database_name

Имя изменяемой базы данных.

Примечание.

Этот параметр недоступен в автономной базе данных.

ТЕКУЩИЙ
Область применения: SQL Server 2012 (11.x) и более поздних версий.

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

MODIFY NAME = new_database_name

Присваивает базе данных имя, указанное в аргументе новое_имя_базы_данных.

COLLATE collation_name

Задает параметры сортировки для базы данных. Аргументом collation_name может быть либо имя параметров сортировки Windows, либо имя параметров сортировки SQL. Если это не указано, база данных назначает параметры сортировки экземпляра SQL Server.

Примечание.

Параметры сортировки нельзя изменить после создания базы данных на База данных SQL Azure.

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

Список имен параметров сортировки Windows и SQL см. в статье Параметры сортировки.

<> delayed_durability_option ::=

Область применения: SQL Server 2014 (12.x) и более поздних версий.

Дополнительные сведения см. в разделе "ПАРАМЕТРЫ ALTER DATABASE SET" и "Устойчивость транзакций управления".

<>file_and_filegroup_options::=

Дополнительные сведения см. в статье Параметры инструкции ALTER DATABASE для файлов и файловых групп (Transact-SQL).

Замечания

Чтобы удалить базу данных, используйте инструкцию DROP DATABASE.

Чтобы уменьшить размер базы данных, используйте предложение DBCC SHRINKDATABASE.

Инструкция ALTER DATABASE должна выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не допускается в явной или неявной транзакции.

Состояние файла базы данных (например "в сети" или "вне сети") поддерживается независимо от состояния базы данных. Дополнительные сведения см. в разделе Состояния файлов. Состояние файлов в пределах файловой группы определяет доступность файловой группы в целом. Чтобы файловая группа была доступна, необходимо, чтобы все файлы в файловой группе находились в режиме в сети. Если файловая группа находится в автономном режиме, любая попытка доступа к файловой группе инструкцией SQL завершается ошибкой. При создании планов запросов для инструкций SELECT оптимизатор запросов избегает некластеризованных индексов и индексированных представлений, которые находятся в файловых группах вне сети. Это позволяет успешно выполнить эти инструкции. Однако если файловая группа, находящаяся в режиме вне сети, содержит кучу или кластеризованный индекс целевой таблицы, инструкция SELECT не будет выполнена. Кроме того, любой INSERTUPDATEоператор или DELETE оператор, изменяющий таблицу с любым индексом в автономной файловой группе, завершается сбоем.

Если база данных находится в состоянии ВОССТАНОВЛЕНИЯ, большинство ALTER DATABASE инструкций завершается ошибкой. Исключением является настройка параметров зеркального отображения базы данных. База данных может находиться в состоянии RESTOREING во время активной операции восстановления или при сбое операции восстановления базы данных или файла журнала из-за поврежденного файла резервной копии.

Кэш планов для экземпляра SQL Server очищается, задав один из следующих параметров.

  • COLLATE
  • MODIFY FILEGROUP DEFAULT
  • MODIFY FILEGROUP READ_ONLY
  • MODIFY FILEGROUP READ_WRITE
  • MODIFY_NAME
  • OFFLINE
  • ONLINE
  • PAGE_VERIFY
  • READ_ONLY
  • READ_WRITE

Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. Для каждого очищаемого хранилища кэша в кэше планов журнал ошибок 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. Если отсутствуют ссылки соединений пользователя или базы данных, фоновая задача предпримет попытку закрыть и отключить базу данных автоматически.
  • Выполняется несколько запросов в базе данных с параметрами по умолчанию. Затем база данных уничтожается.
  • Моментальный снимок базы данных для базы данных-источника удален.
  • Успешное перестроение журнала транзакций базы данных.
  • Восстановление резервной копии базы данных.
  • Отсоединение базы данных.

Изменение сортировки базы данных

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

  • Вы являетесь единственным пользователем базы данных в настоящее время.
  • Ни один объект, привязанный к схеме, не зависит от параметров сортировки базы данных.

Если в базе данных существуют следующие объекты, которые зависят от сортировки базы данных, инструкция завершается ошибкой ALTER DATABASE database_name COLLATE . SQL Server возвращает сообщение об ошибке ALTER для каждого объекта, блокирующего действие:

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

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

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

  • имена объектов, такие как процедуры, таблицы, триггеры или представления;
  • Имена схем
  • участники, такие как группы, роли или пользователи;
  • имена скалярных типов, таких как системные и определяемые пользователем типы;
  • имена полнотекстовых каталогов;
  • имена столбцов или параметров в пределах объекта;
  • имена индексов в пределах таблицы.

Повторяющиеся имена, полученные из-за новой сортировки, приводят к сбою действия изменения, и SQL Server возвращает сообщение об ошибке, указывающее пространство имен, в котором найден дубликат.

Просмотр сведений о базе данных

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

Разрешения

Необходимо разрешение ALTER на базу данных.

Примеры

А. Изменение имени базы данных

В следующем примере имя базы данных AdventureWorks2022 изменяется на Northwind.

USE master;
GO
ALTER DATABASE AdventureWorks2022
Modify Name = Northwind ;
GO

B. Изменение сортировки базы данных

В следующем примере создается база данных testdb, параметры сортировки которой имеют значение SQL_Latin1_General_CP1_CI_AS. Затем имя базы данных testdb изменяется на COLLATE French_CI_AI.

Применимо: SQL Server 2008 (10.0.x) и более поздних версий.

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO

* База данных SQL *  

 

Обзор: База данных SQL

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

Так как синтаксис ALTER DATABASE имеет значительную длину, мы разделили его описание на несколько статей.

ALTER DATABASE
В текущей статье приведены синтаксис и связанные сведения об изменении имени и других параметров базы данных.

Параметры ALTER DATABASE SET
Синтаксис для изменения атрибутов базы данных с помощью параметров SET команды ALTER DATABASE, а также дополнительная информация об этом.

Уровень совместимости ALTER DATABASE
Синтаксис параметров SET инструкции ALTER DATABASE, имеющих отношение к уровням совместимости базы данных, и дополнительная информация об этом.

Синтаксис

-- Azure SQL Database Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | MODIFY ( <edition_options> [, ... n] )
  | MODIFY BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
  | SET { <option_spec> [ ,... n ] WITH <termination>}
  | ADD SECONDARY ON SERVER <partner_server_name>
    [WITH ( <add-secondary-option>::=[, ... n] ) ]
  | REMOVE SECONDARY ON SERVER <partner_server_name>
  | FAILOVER
  | FORCE_FAILOVER_ALLOW_DATA_LOSS
}
[;]

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 250 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale'}
  | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL (name = <elastic_pool_name>) }
       }
}

<add-secondary-option> ::=
   {
      ALLOW_CONNECTIONS = { ALL | NO }
     | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
     | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL ( name = <elastic_pool_name>) }
       | DATABASE_NAME = <target_database_name>
       | SECONDARY_TYPE = { GEO | NAMED }
       }
   }

<service-objective> ::={ 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'BC_DC_n'
      | 'BC_Gen5_n' 
      | 'BC_M_n' 
      | 'GP_DC_n'
      | 'GP_Fsv2_n' 
      | 'GP_Gen5_n' 
      | 'GP_S_Gen5_n' 
      | 'HS_DC_n'
      | 'HS_Gen5_n'
      | 'HS_MOPRMS_n' 
      | 'HS_PRMS_n' 
      | { ELASTIC_POOL(name = <elastic_pool_name>) }
      }

<option_spec> ::=
{
    <auto_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>
  | <compatibility_level>
    { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}

Аргументы

database_name

Имя изменяемой базы данных.

ТЕКУЩИЙ
Определяет, что должна быть изменена текущая используемая база данных.

MODIFY NAME = new_database_name

Присваивает базе данных имя, указанное в аргументе новое_имя_базы_данных. В следующем примере имя базы данных db1 изменяется на db2.

ALTER DATABASE db1
    MODIFY Name = db2 ;

MODIFY (EDITION = ['Basic' | "Стандартный" | 'Премиум' |' GeneralPurpose' | "BusinessCritical" | "Гипермасштабирование"])

Изменяет уровень службы базы данных.

В следующем примере выпуск изменяется на Premium.

ALTER DATABASE current
    MODIFY (EDITION = 'Premium');

Внимание

Смена значения параметра EDITION завершается неудачей, если для свойства MAXSIZE базы данных задано значение вне допустимого диапазона, поддерживаемого этим выпуском.

MODIFY (BACKUP_STORAGE_REDUNDANCY = ['LOCAL' | 'ZONE' | 'GEO'])

Изменяет избыточность хранилища резервных копий восстановления на момент времени и долгосрочного резервного копирования (если настроено) базы данных. Изменения применяются ко всем будущим резервным копиям. Существующие резервные копии продолжают использовать предыдущий параметр.

Чтобы обеспечить размещение данных при создании базы данных с помощью T-SQL, используйте LOCAL или ZONE в качестве входных данных для параметра BACKUP_STORAGE_REDUNDANCY.

MODIFY (MAXSIZE = [100 МБ | 500 МБ | 1 | 1 | 1024...4096] ГБ)

Указывает максимальный размер базы данных. Максимальный размер должен соответствовать допустимому набору значений для свойства EDITION базы данных. Изменение максимального размера базы данных может привести к изменению выпуска базы данных.

Примечание.

Аргумент MAXSIZE не применяется к отдельным базам данных на уровне служб "Гипермасштабирование". Базы данных уровня обслуживания "Гипермасштабирование" увеличиваются по мере необходимости до 100 ТБ. Служба "База данных SQL" автоматически добавляет объем хранилища. Задавать максимальный размер не нужно.

Модель DTU

MAXSIZE Базовая S0–S2 S3–S12 P1–P6 P11–P15
100 МБ Да Да Да Да Да
250 МБ Да Да Да Да Да
500 МБ Да Да Да Да Да
1 ГБ Да Да Да Да Да
2 ГБ Да (D) Да Да Да Да
5 ГБ Н/П Да Да Да Да
10 ГБ Н/П Да Да Да Да
20 ГБ Н/П Да Да Да Да
30 ГБ Н/П Да Да Да Да
40 ГБ Н/П Да Да Да Да
50 ГБ Н/П Да Да Да Да
100 ГБ Н/П Да Да Да Да
150 ГБ Н/П Да Да Да Да
200 ГБ Н/П Да Да Да Да
250 ГБ Н/П Да (D) Да (D) Да Да
300 ГБ Н/П Да Да Да Да
400 ГБ Н/П Да Да Да Да
500 ГБ Н/П Да Да Да (D) Да
750 ГБ Н/П Да Да Да Да
1024 ГБ Н/П Да Да Да Да (D)
От 1024 ГБ до 4096 ГБ приращения 256 ГБ 1 Неприменимо Н/Д Н/Д Неприменимо Да

1 P11 и P15 позволяют MAXSIZE до 4 ТБ с размером по умолчанию 1024 ГБ. P11 и P15 могут использовать до 4 ТБ включенного объема хранилища без дополнительной платы. US Gov (Вирджиния) Дополнительные сведения об ограничениях по ресурсам для модели DTU см. в разделе Пределы для ресурсов DTU.

Значение MAXSIZE для модели DTU, если оно задано, должно быть одним из допустимых значений, приведенных в таблице выше для указанного уровня служб.

Ограничения, такие как максимальный размер и tempdb размер данных в модели приобретения виртуальных ядер, см. в статьях по ограничениям ресурсов для отдельных баз данных или ограничений ресурсов для эластичных пулов.

Если при использовании модели виртуальных ядер значение MAXSIZE не задано, используется значение по умолчанию — 32 ГБ. Дополнительные сведения об ограничениях ресурсов в модели виртуальных ядер см. в разделе Ограничения ресурсов в модели виртуальных ядер.

Следующие правила применяются к аргументам MAXSIZE и EDITION:

  • Если параметр EDITION указан, но MAXSIZE не указан, используется значение по умолчанию для выпуска. Например, для выпуска задано значение "Стандартный", а maxSIZE не задано, то MAXSIZE автоматически устанавливается значение 250 МБ.
  • Если значения MAXSIZE и EDITION не указаны, для EDITION задается значение General Purpose, а для MAXSIZE — 32 ГБ.

MODIFY (SERVICE_OBJECTIVE = <service-objective>)

Указывает размер вычислительных ресурсов и цель службы.

SERVICE_OBJECTIVE

Указывает размер вычислительных ресурсов (также известный как цель уровня обслуживания или SLO).

Например, следующий пример изменяет цель службы базы данных уровня "Премиум" в модели приобретения DTU следующим P6образом:

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'P6');

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

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'GP_Gen5_8');

Database_Name

Только для гипермасштабирования База данных SQL Azure. Имя создаваемой базы данных. Используется только именованными репликами Гипермасштабирования Базы данных SQL Azure, если параметр SECONDARY_TYPE имеет значение NAMED. Дополнительные сведения см. в дополнительных реплика гипермасштабирования.

SECONDARY_TYPE

Только для гипермасштабирования База данных SQL Azure. GEO указывает геореплику, а NAMED — именованную реплику. Значение по умолчанию — GEO. Дополнительные сведения см. в дополнительных реплика гипермасштабирования.

Дополнительные сведения о размерах, выпусках и сочетаниях целей службы см. в разделе "Сравнение моделей приобретения виртуальных ядер и DTU" База данных SQL Azure, ограничений ресурсов DTU и ограничений ресурсов виртуальных ядер. Поддержка целей служб PRS была удалена.

Если SERVICE_OBJECTIVE не указан, база данных-получатель создается на том же уровне обслуживания, что и база данных-источник. Если параметр SERVICE_OBJECTIVE указан, база данных-получатель создается с указанным уровнем. Указанный параметр SERVICE_OBJECTIVE должен находиться в том же выпуске, что и источник. Например, нельзя указать S0, если выпуск является премиумом.

MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL (name = <elastic_pool_name>)

Чтобы добавить существующую базу данных в эластичный пул, задайте параметру SERVICE_OBJECTIVE базы данных значение ELASTIC_POOL и укажите имя эластичного пула. Этот параметр также служит для изменения базы данных в другом эластичном пуле на том же сервере. Дополнительные сведения см. в статье "Эластичные пулы" для управления и масштабирования нескольких баз данных в База данных SQL Azure. Чтобы удалить базу данных из эластичного пула, используйте инструкцию ALTER DATABASE, чтобы задать в качестве значения SERVICE_OBJECTIVE один объем вычислительных ресурсов (цель обслуживания) базы данных.

Примечание.

Базы данных на уровне служб гипермасштабирования нельзя добавить в эластичном пуле.

ADD SECONDARY ON SERVER <partner_server_name>

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

Внимание

По умолчанию вторичная база данных создается с той же избыточностью хранилища резервных копий, что и у первичной базы данных (источника). Изменение избыточности хранилища резервных копий при создании вторичного хранилища не поддерживается с помощью T-SQL.

WITH ALLOW_CONNECTIONS { ALL | NO }

Если ALLOW_CONNECTIONS не указан, он по умолчанию имеет значение ALL. Если указано значение ALL, это база данных только для чтения, позволяющая подключаться всем именам входа с соответствующими разрешениями.

ELASTIC_POOL (name = <имя_эластичного_пула>)

Если ELASTIC_POOL не указан, база данных-получатель не создается в эластичном пуле. Если параметр ELASTIC_POOL указан, база данных-получатель создается в указанном пуле.

Внимание

Пользователь, выполняющий команду ADD SECONDARY, должен иметь права DBManager на сервере-источнике, членство db_owner в локальной базе данных и права DBManager на сервере-получателе. IP-адрес клиента нужно добавить в список разрешенных правилами брандмауэра для сервера-источника и сервера-получателя. Если используются разные IP-адреса клиента, для сервера-получателя нужно добавить клиентский IP-адрес, добавленный для сервера-источника. Это обязательный шаг перед выполнением команды ADD SECONDARY для запуска георепликации.

УДАЛЕНИЕ ДОПОЛНИТЕЛЬНЫХ PARTNER_SERVER_NAME СЕРВЕРА <>

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

Внимание

Пользователь, выполняющий команду REMOVE SECONDARY, должен иметь права DBManager на сервере-источнике.

ОТРАБОТКА ОТКАЗА

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

  1. База данных-источник перестает принимать новые транзакции.
  2. Все невыполненные транзакции переходят в базу данных-получатель.
  3. База данных-получатель становится базой данных-источником и начинает асинхронную георепликацию со старым источником и новым получателем.

Эта последовательность гарантирует отсутствие потери данных. Период, в течение которого обе базы данных недоступны, составляет примерно 0–25 секунд во время переключения ролей. Вся операция не должна занимать более одной минуты. Если база данных-источник недоступна при выполнении этой команды, команда завершается ошибкой с сообщением об ошибке, указывающее, что база данных-источник недоступна. Если процесс отработки отказа не завершается и зависает, можно использовать команду принудительной отработки отказа и принять потерю данных, а затем, если необходимо восстановить потерянные данные, обратиться в devops (CSS).

Внимание

Пользователь, выполняющий команду FAILOVER, должен иметь права DBManager на сервере-источнике и сервере-получателе.

FORCE_FAILOVER_ALLOW_DATA_LOSS

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

Во время принудительной отработки отказа выполняются следующие действия.

  1. Указанная база данных-получателя немедленно становится базой данных-источником и начинает принимать новые транзакции.
  2. Когда исходная база данных-источник может повторно установить соединение с новой базой данных-источником, в исходной базе данных-источнике выполняется добавочное резервное копирование и она становится новой базой данных-получателем.
  3. Чтобы восстановить данные из этой добавочной резервной копии в старой базе данных-источнике, пользователь обращается в devops/CSS.
  4. Если имеются дополнительные базы данных-получатели, они автоматически настраиваются в качестве баз данных-получателей новой базы данных-источника. Этот процесс является асинхронным, и может возникнуть задержка до завершения этого процесса. До завершения повторной настройки базы данных-получатели остаются базами данных-получателями старой базы данных-источника.

Внимание

Пользователю, выполняющему команду FORCE_FAILOVER_ALLOW_DATA_LOSS, нужно назначить роль dbmanager на сервере-источнике и сервере-получателе.

Замечания

Чтобы удалить базу данных, используйте инструкцию DROP DATABASE. Чтобы уменьшить размер базы данных, используйте предложение DBCC SHRINKDATABASE.

Инструкция ALTER DATABASE должна выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не допускается в явной или неявной транзакции.

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

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

Просмотр сведений о базе данных

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

Разрешения

Чтобы изменить базу данных, имя входа должно быть именем администратора сервера (созданным при подготовке База данных SQL Azure логическим сервером), администратором Microsoft Entra сервера, членом роли базы данных dbmanager в master, членом роли базы данных db_owner в текущей базе данных или dbo базе данных. Идентификатор Microsoft Entra (ранее — Azure Active Directory).

Для масштабирования баз данных с помощью T-SQL требуются разрешения ALTER DATABASE. Для масштабирования баз данных с помощью портала Azure, PowerShell, Azure CLI или REST API требуются разрешения Azure RBAC, в частности роли участника, участника базы данных SQL или роли Azure RBAC для участника SQL Server. Дополнительные сведения см . в статье о встроенных ролях Azure.

Примеры

А. Проверка параметров выпуска и их изменение

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

SELECT Edition = DATABASEPROPERTYEX('db1', 'EDITION'),
        ServiceObjective = DATABASEPROPERTYEX('db1', 'ServiceObjective'),
        MaxSizeInBytes =  DATABASEPROPERTYEX('db1', 'MaxSizeInBytes');

ALTER DATABASE [db1] MODIFY (EDITION = 'Premium', MAXSIZE = 1024 GB, SERVICE_OBJECTIVE = 'P15');

B. Перемещение базы данных в другой эластичном пуле

Перемещает существующую базу данных в пул с именем pool1:

ALTER DATABASE db1
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;

C. Добавление базы данных-получателя с георепликацией

Создает доступную для чтения базу данных-получатель db1 на сервере secondaryserverdb1 локального сервера.

ALTER DATABASE db1
ADD SECONDARY ON SERVER secondaryserver
WITH ( ALLOW_CONNECTIONS = ALL )

D. Удаление базы данных-получается с георепликацией

Удаляет базу данных-получатель db1 на сервере secondaryserver.

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver

Е. Переход на базу данных-получатель с георепликацией

Повышает базу данных-получатель на сервереsecondaryserver, чтобы стать новой базой данных-источником db1 при выполнении на сервереsecondaryserver.

ALTER DATABASE db1 FAILOVER

Примечание.

Дополнительные сведения см. в руководстве по аварийному восстановлению База данных SQL Azure и списке проверка База данных SQL Azure высокого уровня доступности и аварийного восстановления.

F. Принудительный переход на базу данных-получатель с георепликацией с потерей данных

Принудительно заставляет базу данных-получатель на сервере стать новой базой данных-источником db1 при выполнении на сервере secondaryserversecondaryserver, в случае недоступности первичного сервера. Этот параметр может привести к потере данных.

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS

G. Обновление отдельной базы данных до уровня службы S0 (выпуск Standard Edition, уровень производительности 0)

Обновляет отдельную базу данных до выпуска Standard Edition (уровня службы "Стандартный") с объемом вычислительных ресурсов (целью обслуживания) S0 и максимальным размером 250 ГБ.

ALTER DATABASE [db1] MODIFY (EDITION = 'Standard', MAXSIZE = 250 GB, SERVICE_OBJECTIVE = 'S0');

H. Обновление избыточности хранилища резервных копий базы данных

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

ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE'

* Управляемый экземпляр SQL *  

 

Обзор: Управляемый экземпляр SQL Azure

В Управляемом экземпляре SQL Azure эта инструкция используется для настройки параметров базы данных.

Так как синтаксис ALTER DATABASE имеет значительную длину, мы разделили его описание на несколько статей.

Статья Описание
ALTER DATABASE
Эта статья приводит синтаксис и сопутствующие сведения по настройке параметров файлов и файловых групп, баз данных и уровня совместимости баз данных.
Параметры инструкции ALTER DATABASE для файлов и файловых групп
Синтаксис для добавления или удаления файлов и файловых групп в базе данных, для изменения атрибутов файлов и файловых групп, а также дополнительная информация об этом.
Параметры ALTER DATABASE SET
Синтаксис для изменения атрибутов базы данных с помощью параметров SET команды ALTER DATABASE, а также дополнительная информация об этом.
Уровень совместимости ALTER DATABASE
Синтаксис параметров SET инструкции ALTER DATABASE, имеющих отношение к уровням совместимости базы данных, и дополнительная информация об этом.

Синтаксис

-- Azure SQL Managed Instance syntax  
ALTER DATABASE { database_name | CURRENT }  
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ]  
}  
[;]

<file_and_filegroup_options>::=  
  <add_or_modify_files>::=  
  <filespec>::=
  <add_or_modify_filegroups>::=  
  <filegroup_updatability_option>::=  

<option_spec> ::=
{
    <auto_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>
  | <temporal_history_retention>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}  

Аргументы

database_name

Имя изменяемой базы данных.

ТЕКУЩИЙ
Определяет, что должна быть изменена текущая используемая база данных.

Замечания

  • Чтобы удалить базу данных, используйте инструкцию DROP DATABASE.

  • Чтобы уменьшить размер базы данных, используйте предложение DBCC SHRINKDATABASE.

  • Инструкция ALTER DATABASE должна выполняться в режиме автоматической фиксации (режим управления транзакциями по умолчанию) и не допускается в явной или неявной транзакции.

  • Кэш планов для Управляемый экземпляр SQL Azure очищается, задав один из следующих параметров.

    • COLLATE

    • MODIFY FILEGROUP DEFAULT

    • MODIFY FILEGROUP READ_ONLY

    • MODIFY FILEGROUP READ_WRITE

    • MODIFY NAME

      Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. Для каждого очищаемого хранилища кэша в кэше планов журнал ошибок 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 Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени. Кроме того, кэш планов сбрасывается, когда выполняется несколько запросов к базе данных с параметрами по умолчанию. Затем база данных уничтожается.

  • Для выполнения некоторых инструкций ALTER DATABASE требуется монопольная блокировка базы данных. Именно поэтому они могут завершаться сбоем, если другой активный процесс удерживает блокировку базы данных. В подобном случае возвращается ошибка Msg 5061, Level 16, State 1, Line 38 с сообщением ALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later. Обычно это временный сбой. Чтобы устранить его после снятия всех блокировок с базы данных, повторно выполните инструкцию ALTER DATABASE, которая завершилась ошибкой. Системное представление sys.dm_tran_locks содержит сведения об активных блокировках. Для проверки наличия в базе данных общих или монопольных блокировок используйте приведенный ниже запрос.

    SELECT
        resource_type, resource_database_id, request_mode, request_type, request_status, request_session_id 
    FROM 
        sys.dm_tran_locks
    WHERE
        resource_database_id = DB_ID('testdb');
    

Просмотр сведений о базе данных

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

Разрешения

Изменять базу данных могут только имя входа субъект серверного уровня (созданное в процессе провизионирования) или члены роли базы данных dbcreator.

Внимание

Владелец базы данных не может изменить базу данных, если она не входит dbcreator в роль.

Примеры

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

ALTER DATABASE WideWorldImporters
  SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);

ALTER DATABASE WideWorldImporters
  ADD FILE (NAME = 'data_17');

* Azure Synapse
Analytics *
 

 

Обзор: Azure Synapse Analytics

В Azure Synapse ALTER DATABASE изменяет определенные параметры конфигурации выделенного пула SQL.

Так как синтаксис ALTER DATABASE имеет значительную длину, мы разделили его описание на несколько статей.

Параметры ALTER DATABASE SET предоставляют синтаксис и связанные сведения об изменении атрибутов базы данных с помощью параметров ALTER DATABASESET.

Синтаксис

ALTER DATABASE { database_name | CURRENT }
{
  MODIFY NAME = new_database_name
| MODIFY ( <edition_option> [, ... n] )
| SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<edition_option> ::=
      MAXSIZE = {
            250 | 500 | 750 | 1024 | 5120 | 10240 | 20480
          | 30720 | 40960 | 51200 | 61440 | 71680 | 81920
          | 92160 | 102400 | 153600 | 204800 | 245760
      } GB
      | SERVICE_OBJECTIVE = {
            'DW100' | 'DW200' | 'DW300' | 'DW400' | 'DW500'
          | 'DW600' | 'DW1000' | 'DW1200' | 'DW1500' | 'DW2000'
          | 'DW3000' | 'DW6000' | 'DW500c' | 'DW1000c' | 'DW1500c'
          | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c' | 'DW6000c'
          | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
      }

Аргументы

database_name

Задает имя изменяемой базы данных.

MODIFY NAME = new_database_name

Присваивает базе данных имя, указанное в аргументе новое_имя_базы_данных.

Поддержка параметра "MODIFY NAME" ограничена в Azure Synapse:

  • Не поддерживается в бессерверных пулах Azure Synapse
  • Не поддерживается в выделенных пулах SQL, созданных в рабочей области Azure Synapse
  • Поддерживается в выделенных пулах SQL (ранее — хранилище данных SQL), созданных с помощью портала Azure, включая пулы с подключенной рабочей областью

MAXSIZE

Значение по умолчанию — 245 760 ГБ (240 ТБ).

Область применения: оптимизация для вычислений Gen1

Максимально допустимый размер базы данных. База данных не может увеличиваться за пределы MAXSIZE.

Область применения: оптимизация для вычислений Gen2

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

SERVICE_OBJECTIVE

Определяет объем вычислительных ресурсов (цель обслуживания). Подробные сведения о целях служб для Azure Synapse см. в статье о единицах использования хранилища данных (DWU).

Разрешения

Требуются следующие разрешения:

  • имя входа субъекта серверного уровня, созданное процессом подготовки, или
  • член роли базы данных dbmanager.

Владелец базы данных не может изменить базу данных, если владелец не является членом dbmanager роли.

Замечания

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

COMPATIBILITY_LEVEL в Аналитике SQL задано значение 130 по умолчанию и не может быть изменено. Дополнительные сведения см. на уровне совместимости ALTER DATABASE.

Примечание.

COMPATIBILITY_LEVEL применяется только к подготовленным ресурсам (пулам).

Ограничения

Для запуска ALTER DATABASEбаза данных должна находиться в сети и не может находиться в состоянии приостановки.

Инструкция ALTER DATABASE должна выполняться в режиме автофиксации, который является режимом управления транзакциями по умолчанию. Он задается в параметрах подключения.

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

Невозможно изменить параметры сортировки базы данных.

Примеры

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

А. Изменение имени базы данных

ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;

B. Изменение максимального размера базы данных

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );

C. Изменение объема вычислительных ресурсов (цели обслуживания)

ALTER DATABASE dw1 MODIFY ( SERVICE_OBJECTIVE= 'DW1200' );

D. Изменение максимального объема и объема вычислительных ресурсов (цели обслуживания)

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB, SERVICE_OBJECTIVE= 'DW1200' );

* Analytics
Platform System (PDW) *
 

 

Обзор: система платформы аналитики

В системе платформы аналитики (PDW) ALTER DATABASE изменяет параметры максимального размера базы данных для реплика таблиц, распределенных таблиц и журнала транзакций. С помощью этой инструкции можно управлять выделением дискового пространства для базы данных по мере изменения ее размера. В этой статье также описывается синтаксис, связанный с настройкой параметров базы данных в системе платформы Аналитики (PDW).

Синтаксис

-- Analytics Platform System
ALTER DATABASE database_name
    SET ( <set_database_options> | <db_encryption_option> )
[;]

<set_database_options> ::=
{
    AUTOGROW = { ON | OFF }
    | REPLICATED_SIZE = size [GB]
    | DISTRIBUTED_SIZE = size [GB]
    | LOG_SIZE = size [GB]
    | SET AUTO_CREATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF }

Аргументы

database_name

Имя изменяемой базы данных. Чтобы получить список баз данных на устройстве, используйте представление sys.databases.

AUTOGROW = { ON | OFF }

Изменяет значение параметра AUTOGROW. Если функция AUTOGROW включена, система платформы аналитики (PDW) автоматически увеличивает выделенное пространство для реплика таблиц, распределенных таблиц и журнала транзакций при необходимости для удовлетворения требований к хранилищу. Если функция AUTOGROW отключена, система платформы аналитики (PDW) возвращает ошибку, если реплика таблицы, распределенные таблицы или журнал транзакций превышает максимальный размер.

REPLICATED_SIZE = размер [ГБ]

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

DISTRIBUTED_SIZE = размер [ГБ]

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

LOG_SIZE = размер [ГБ]

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

ENCRYPTION { ON | OFF }

Включает шифрование базы данных (ON) или отключает его (OFF). Шифрование можно настроить только для системы платформы Аналитики (PDW), если sp_pdw_database_encryption задано значение 1. Перед настройкой прозрачного шифрования данных необходимо создать ключ шифрования базы данных. Дополнительные сведения о шифровании базы данных см. в разделе "Прозрачное шифрование данных" (TDE).

SET AUTO_CREATE_STATISTICS { ON | OFF }

Если включен параметр AUTO_CREATE_STATISTICS, оптимизатор запросов при необходимости создает статистику по отдельным столбцам в предикате запроса, чтобы улучшить оценку кратности для плана запроса. Такая статистика по отдельным столбцам создается для столбцов, в которых отсутствует гистограмма в существующем объекте статистики.

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

Дополнительные сведения о статистике см. в статье Статистика.

SET AUTO_UPDATE_STATISTICS { ON | OFF }

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

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

Дополнительные сведения о статистике см. в статье Статистика.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }

Параметр AUTO_UPDATE_STATISTICS_ASYNC (асинхронное обновление статистики) определяет, какой режим обновления статистики использует оптимизатор запросов: синхронный или асинхронный. Параметр AUTO_UPDATE_STATISTICS_ASYNC применяется к объектам статистики, созданным для индексов, отдельных столбцов в предикатах запросов и статистике, созданной с помощью инструкции CREATE STATISTICS .

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

Дополнительные сведения о статистике см. в статье Статистика.

Разрешения

Необходимо разрешение ALTER для базы данных.

сообщения об ошибках

Если автоматическая статистика отключена, при попытке изменить параметры статистики в PDW выводится сообщение об ошибке This option isn't supported in PDW. Системный администратор может включить автоматическую статистику, включив переключатель AutoStatsEnabled.

Замечания

Значения параметров REPLICATED_SIZE, DISTRIBUTED_SIZE и LOG_SIZE могут быть больше или меньше текущих значений для базы данных либо равны им.

Ограничения

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

Система платформ аналитики (PDW) не выполняет инструкцию ALTER DATABASE как атомарную операцию. Если выполнение инструкции прерывается, уже внесенные изменения сохраняются.

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

Режим блокировки

Принимает совмещаемую блокировку для объекта DATABASE. Невозможно изменить базу данных, которая используется другим пользователем для чтения или записи. Это относится и к сеансам, в рамках которых была выполнена инструкция USE для базы данных.

Производительность

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

Определение хода выполнения шифрования

Чтобы определить ход выполнения прозрачного шифрования данных в базе данных в процентах, используйте следующий запрос:

WITH
database_dek AS (
    SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id,
        dek.encryption_state, dek.percent_complete,
        dek.key_algorithm, dek.key_length, dek.encryptor_thumbprint,
        type
    FROM sys.dm_pdw_nodes_database_encryption_keys AS dek
    INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map
        ON dek.database_id = node_db_map.database_id
        AND dek.pdw_node_id = node_db_map.pdw_node_id
    LEFT JOIN sys.pdw_database_mappings AS db_map
        ON node_db_map .physical_name = db_map.physical_name
    INNER JOIN sys.dm_pdw_nodes nodes
        ON nodes.pdw_node_id = dek.pdw_node_id
    WHERE dek.encryptor_thumbprint <> 0x
),
dek_percent_complete AS (
    SELECT database_dek.database_id, AVG(database_dek.percent_complete) AS percent_complete
    FROM database_dek
    WHERE type = 'COMPUTE'
    GROUP BY database_dek.database_id
)
SELECT DB_NAME( database_dek.database_id ) AS name,
    database_dek.database_id,
    ISNULL(
       (SELECT TOP 1 dek_encryption_state.encryption_state
        FROM database_dek AS dek_encryption_state
        WHERE dek_encryption_state.database_id = database_dek.database_id
        ORDER BY (CASE encryption_state
            WHEN 3 THEN -1
            ELSE encryption_state
            END) DESC), 0)
        AS encryption_state,
dek_percent_complete.percent_complete,
database_dek.key_algorithm, database_dek.key_length, database_dek.encryptor_thumbprint
FROM database_dek
INNER JOIN dek_percent_complete
    ON dek_percent_complete.database_id = database_dek.database_id
WHERE type = 'CONTROL';

Полный пример, демонстрирующий все шаги реализации TDE, см. в разделе "Прозрачное шифрование данных" (TDE).

Примеры: система платформы аналитики (PDW)

А. Изменение параметра AUTOGROW

Присвойте параметру AUTOGROW значение ON для базы данных CustomerSales.

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Изменение максимального хранилища для реплика таблиц

В приведенном ниже примере для базы данных CustomerSales задается максимальный размер хранилища для реплицированных таблиц, равный 1 ГБ. Это размер хранилища для вычислительного узла.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Изменение максимального хранилища для распределенных таблиц

В приведенном ниже примере для базы данных CustomerSales задается максимальный размер хранилища для распределенных таблиц, равный 1000 ГБ (один терабайт). Это совокупный размер хранилища для всех вычислительных узлов на устройстве, а не для отдельных вычислительных узлов.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Изменение максимального хранилища для журнала транзакций

В следующем примере база данных CustomerSales обновляется до максимального размера журнала транзакций SQL Server размером 10 ГБ для (модуль).

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

Е. Проверка текущих значений статистики

Следующий запрос возвращает текущие значения статистики для всех баз данных. Значение 1 означает, что функция включена и 0 означает, что функция отключена.

SELECT NAME,
    is_auto_create_stats_on,
    is_auto_update_stats_on,
    is_auto_update_stats_async_on
FROM sys.databases;

F. Включение автоматического создания и автоматического обновление статистики для базы данных

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

ALTER DATABASE CustomerSales
    SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE CustomerSales
    SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE
    SET AUTO_UPDATE_STATISTICS_ASYNC ON;