ALTER DATABASE (Transact-SQL)
Изменяет определенные параметры конфигурации базы данных.
Эта статья приводит синтаксис, аргументы, комментарии, разрешения и примеры для любых выбранных продуктов SQL.
Дополнительные сведения о соглашениях о синтаксисе см. в статье Соглашения о синтаксисе в Transact-SQL.
Выбор продукта
В следующей строке выберите название нужного продукта, и отобразится информация только об этом продукте.
* SQL Server *
Обзор: SQL Server
В SQL Server эта инструкция изменяет базу данных или файлы и файловые группы, связанные с базой данных. ALTER DATABASE добавляет или удаляет файлы и файловые группы из базы данных, изменяет атрибуты базы данных или его файлов и файловых групп, изменяет параметры сортировки базы данных и задает параметры базы данных. Моментальные снимки базы данных изменить нельзя. Чтобы изменить параметры базы данных, связанные с репликацией, используйте процедуру sp_replicationdboption.
Так как синтаксис ALTER DATABASE
имеет значительную длину, мы разделили его описание на несколько статей.
Статья | Description |
---|---|
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:
S0
,S1
P11
P6
S2
P4
S3
S4
P2
S6
S12
P1
S7
S9
.P15
Ознакомьтесь с ограничениями ресурсов для отдельных баз данных DTU или ограничений ресурсов для эластичных пулов DTU, чтобы найти число DTU, назначенных каждому размеру вычислительных ресурсов. - Для модели приобретения виртуальных ядер выберите уровень и укажите количество виртуальных ядер из предустановленного списка значений, где число
n
виртуальных ядер равно. Ознакомьтесь с ограничениями ресурсов для отдельных баз данных виртуальных ядер или ограничений ресурсов для эластичных пулов виртуальных ядер.- Например:
GP_Gen5_8
для вычислений ценовой категории "Стандартный" (5-го поколения) 8 виртуальных ядер.GP_S_Gen5_8
для вычислений бессерверных бессерверных виртуальных ядер общего назначения (5-го поколения) 8 виртуальных ядер.HS_Gen5_8
для гипермасштабирования — подготовленных вычислений — стандартных рядов (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
Только для гипермасштабирования базы данных 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 на сервере-источнике.
ОТРАБОТКА ОТКАЗА
Повышает уровень базы данных-получателя в отношении с георепликацией, где выполняется команда, до базы данных-источника и снижает уровень текущей базы данных-источника до новой базы данных-получателя. В рамках этого процесса режим георепликации временно переключается с асинхронного на синхронный. Во время процесса отработки отказа выполняются следующий действия.
- База данных-источник перестает принимать новые транзакции.
- Все невыполненные транзакции переходят в базу данных-получатель.
- База данных-получатель становится базой данных-источником и начинает асинхронную георепликацию со старым источником и новым получателем.
Эта последовательность гарантирует отсутствие потери данных. Период, в течение которого обе базы данных недоступны, составляет примерно 0–25 секунд во время переключения ролей. Вся операция не должна занимать более одной минуты. Если во время выполнения этой команды база данных-источник недоступна, команда выводит сообщение об ошибке, информирующее о недоступности базы данных-источника. Если процесс отработки отказа не завершается и зависает, можно использовать команду принудительной отработки отказа и принять потерю данных, а затем, если необходимо восстановить потерянные данные, обратиться в devops (CSS).
Внимание
Пользователь, выполняющий команду FAILOVER, должен иметь права DBManager на сервере-источнике и сервере-получателе.
FORCE_FAILOVER_ALLOW_DATA_LOSS
Повышает уровень базы данных-получателя в отношении с георепликацией, где выполняется команда, до базы данных-источника и снижает уровень текущей базы данных-источника до новой базы данных-получателя. Эту команду следует использовать только в том случае, если текущая база данных-источник больше не доступна. Она предназначена для аварийного восстановления, только если очень важно восстановить доступность и допускается потеря некоторых данных.
Во время принудительной отработки отказа выполняются следующие действия.
- Указанная база данных-получателя немедленно становится базой данных-источником и начинает принимать новые транзакции.
- Когда исходная база данных-источник может повторно установить соединение с новой базой данных-источником, в исходной базе данных-источнике выполняется добавочное резервное копирование и она становится новой базой данных-получателем.
- Чтобы восстановить данные из этой добавочной резервной копии в старой базе данных-источнике, пользователь обращается в devops/CSS.
- Если имеются дополнительные базы данных-получатели, они автоматически настраиваются в качестве баз данных-получателей новой базы данных-источника. Этот процесс является асинхронным и до момента его завершения может возникнуть задержка. До завершения повторной настройки базы данных-получатели остаются базами данных-получателями старой базы данных-источника.
Внимание
Пользователю, выполняющему команду 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), администратором 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.
Примеры
О. Проверка параметров выпуска и их изменение
Задает выпуск и максимальный размер базы данных 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
на сервере secondaryserver
db1
локального сервера.
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 с высоким уровнем доступности и аварийного восстановления.
Е. Принудительный переход на базу данных-получатель с георепликацией с потерей данных
Принудительно заставляет базу данных-получатель на сервере стать новой базой данных-источником db1
при выполнении на сервере secondaryserver
secondaryserver
, в случае недоступности первичного сервера. Повышение уровня может привести к потере данных.
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'
Далее
- CREATE DATABASE — База данных SQL Azure
- DATABASEPROPERTYEX
- DROP DATABASE
- SET TRANSACTION ISOLATION LEVEL
- EVENTDATA
- sp_spaceused
- sys.databases
- sys.database_files
- sys.filegroups
- sys.master_files
- Системные базы данных
- Руководство по аварийному восстановлению базы данных SQL Azure
- Контрольный список для базы данных SQL Azure с высоким уровнем доступности и аварийного восстановления
- Ограничения ресурсов DTU
- Ограничения ресурсов виртуальных ядер для отдельных баз данных
- Ограничения ресурсов виртуальных ядер для эластичных пулов
* Управляемый экземпляр SQL *
Обзор: Управляемый экземпляр SQL Azure
В Управляемом экземпляре SQL Azure эта инструкция используется для настройки параметров базы данных.
Так как синтаксис ALTER DATABASE
имеет значительную длину, мы разделили его описание на несколько статей.
Статья | Description |
---|---|
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;
Е. Включение автоматического создания и автоматического обновление статистики для базы данных
Используйте следующую инструкцию, чтобы включить автоматическое и асинхронное создание и обновление статистики для базы данных 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;