ALTER DATABASE (Transact-SQL)

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

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

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

Выберите продукт

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

* SQL Server *  

 

Общие сведения. SQL Server

В SQL Server эта инструкция изменяет базу данных или файлы и файловые группы, связанные с базой данных. Добавляет или удаляет файлы и файловые группы из базы данных, изменяет атрибуты базы данных или ее файлов и файловых групп, изменяет параметры сортировки базы данных и устанавливает параметры базы данных. Моментальные снимки базы данных изменить нельзя. Чтобы изменить параметры базы данных, связанные с репликацией, используйте процедуру 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

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

Примечание

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

CURRENT
Область применения: 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).

Remarks

Чтобы удалить базу данных, используйте инструкцию 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 DATABASEdatabase_nameCOLLATE завершится ошибкой. SQL Server возвращает сообщение об ошибке для каждого объекта, блокирующего действие ALTER:

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

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

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

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

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

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

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

Разрешения

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

Примеры

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

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

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

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

В следующем примере создается база данных 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 }
     | 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

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

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

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"])

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

Важно!

Параметр BACKUP_STORAGE_REDUNDANCY для Базы данных SQL Azure сейчас предоставляется только в регионе Azure Южная Бразилия в режиме общедоступной предварительной версии и полностью в регионе Azure Юго-Восточной Азии.

MODIFY (MAXSIZE = [100 МБ | 500 МБ | 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 ТБ включенного объема хранилища без дополнительной платы. На уровне Premium использование MAXSIZE со значением более 1 ТБ сейчас доступно в следующих регионах: восточная часть США 2, западная часть США, 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

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

  • Для модели приобретения DTU: S0, S1, , S3S2, S4S6, S7, S9, S12, P1, P2, P4, , P6, , P11,P15
  • Для модели приобретения виртуальных ядер выберите уровень и укажите количество виртуальных ядер из предустановленного списка значений, где число виртуальных ядер равно n. См. ограничения ресурсов для отдельных баз данных или ограничения ресурсов для эластичных пулов.
    • Например:
    • GP_Gen5_8 Для вычислений серии Standard (5-го поколения) общего назначения — 8 виртуальных ядер.
    • GP_S_Gen5_8для общего назначения бессерверных вычислений серии Standard (5-го поколения), 8 виртуальных ядер.
    • HS_Gen5_8 для гипермасштабирования — подготовленные вычислительные ресурсы — серия Standard (5-е поколение), 8 виртуальных ядер.

Например, в следующем примере цель службы базы данных уровня "Премиум" в модели приобретения 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

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

SECONDARY_TYPE

Только для гипермасштабирования базы данных Azure SQL. 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 на сервере-источнике.

FAILOVER

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

  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 на сервере-источнике и сервере-получателе.

Remarks

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

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

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

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

Разрешения

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

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

Примеры

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

Позволяет задать выпуск и максимальный размер для базы данных 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');

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

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

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

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

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

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

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

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

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver

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

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

ALTER DATABASE db1 FAILOVER

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

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

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS

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

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

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

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

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

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 Database 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

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

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

Remarks

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

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

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

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

    • 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.

Примеры

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

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 ТБ).

Применимо к: Оптимизировано для поколения вычислительных ресурсов 1

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

Применимо к: Оптимизировано для поколения вычислительных ресурсов 2

Максимально допустимый размер данных 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.

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

ALTER DATABASE AdventureWorks2012
MODIFY NAME = Northwind;

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

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );

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

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

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

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

Дальнейшие действия

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

 

Общие сведения. Система платформы аналитики

Изменяет параметры максимального размера базы данных для реплицированных таблиц, распределенных таблиц и журнала транзакций в PDW. С помощью этой инструкции можно управлять выделением дискового пространства для базы данных по мере изменения ее размера. В статье также описан синтаксис, связанный с настройкой параметров баз данных в 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 имеет значение ON, Система платформы аналитики (PDW) автоматически увеличивает пространство, выделенное для реплицированных таблиц, распределенных таблиц и журнала транзакций, в соответствии с растущими требованиями к хранилищу. Если параметр AUTOGROW имеет значение OFF, Система платформы аналитики (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)

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

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

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

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

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

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

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

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

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

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

В приведенном ниже примере для базы данных 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;

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

Используйте следующую инструкцию, чтобы включить автоматическое и асинхронное создание и обновление статистики для базы данных 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;

Дальнейшие действия