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>
      { 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 не будет выполнена. Кроме того, любая инструкция INSERT, UPDATE или DELETE, изменяющая таблицу с любым индексом в файловой группе, находящихся в режиме вне сети, также не будет выполнена.

Если база данных находится в состоянии RESTORING, выполнение большинства инструкций ALTER DATABASE завершится сбоем. Исключением является настройка параметров зеркального отображения базы данных. База данных может находиться в состоянии RESTORING во время выполнения операции восстановления или тогда, когда при операции восстановления базы данных или файла журнала происходит сбой из-за поврежденного файла резервной копии.

Кэш планов для экземпляра 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>
    { 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 базы данных. Смена максимального размера базы данных может потребовать также смены значения 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 ГБ * Неприменимо Н/Д Н/Д Неприменимо

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

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

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

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

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

  • Если параметр EDITION указан, а параметр MAXSIZE — нет, то в качестве выпуска будет использоваться значение по умолчанию. Например, если параметру EDITION задано значение Standard, а параметр 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. Дополнительные сведения см. в статье Вторичные реплики Гипермасштабирования.

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

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

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

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

Примеры

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

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

  • Для выполнения некоторых инструкций 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 описан синтаксис для изменения атрибутов базы данных с помощью параметров SET команды ALTER DATABASE, а также дополнительная информация об этом.

Синтаксис

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 Analytics имеет значение 130 по умолчанию. Его нельзя изменить. Дополнительные сведения см. в статье Повышение производительности запросов с использованием уровня совместимости 130 в базе данных SQL Azure.

Примечание.

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 is not 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).

Примеры: система платформы аналитики (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;

Следующие шаги