Sdílet prostřednictvím


ALTER DATABASE (Transact-SQL)

Upraví určité možnosti konfigurace databáze.

Tento článek obsahuje syntaxi, argumenty, poznámky, oprávnění a příklady pro vámi zvolený produkt SQL.

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

Výběr produktu

V následujícím řádku vyberte název produktu, který vás zajímá, a zobrazí se jenom informace o daném produktu.

* SQL Server *  

SQL Database

spravované instance SQL

 

Přehled: SQL Server

V SYSTÉMU SQL Server tento příkaz upraví databázi nebo soubory a skupiny souborů přidružené k databázi. ALTER DATABASE přidá nebo odebere soubory a skupiny souborů z databáze, změní atributy databáze nebo jejích souborů a skupin souborů, změní kolaci databáze a nastaví možnosti databáze. Snímky databáze nelze upravit. Chcete-li upravit možnosti databáze přidružené k replikaci, použijte sp_replicationdboption.

Vzhledem k jeho délce je syntaxe ALTER DATABASE oddělená do více článků.

Článek Popis
ALTER DATABASE Aktuální článek obsahuje syntaxi a související informace pro změnu názvu a kolace databáze.
možnosti souborů ALTER DATABASE a skupin souborů Poskytuje syntaxi a související informace pro přidávání a odebírání souborů a skupin souborů z databáze a pro změnu atributů souborů a skupin souborů.
možnosti ALTER DATABASE SET Poskytuje syntaxi a související informace pro změnu atributů databáze pomocí možností SET ALTER DATABASE.
ALTER DATABASE Database Mirroring Poskytuje syntaxi a související informace pro možnosti SET ALTER DATABASE, které souvisejí se zrcadlením databáze.
ALTER DATABASE SET HADR Poskytuje syntaxi a související informace pro možnosti skupin dostupnosti AlwaysOn příkazu ALTER DATABASE pro konfiguraci sekundární databáze na sekundární replice skupiny dostupnosti AlwaysOn.
úroveň kompatibility ALTER DATABASE Poskytuje syntaxi a související informace pro možnosti SET ALTER DATABASE, které souvisejí s úrovněmi kompatibility databáze.
ALTER DATABASE SCOPED CONFIGURATION Poskytuje syntaxi související s konfigurací s vymezeným oborem databáze, které se používají pro jednotlivá nastavení na úrovni databáze, jako je například optimalizace dotazů a chování související se spouštěním dotazů.

Syntax

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

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

<option_spec>::=
{
  | <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | <FILESTREAM_options>
  | <HADR_options>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}

Argumenty

database_name

Je název databáze, která se má upravit.

Poznámka

Tato možnost není dostupná v databázi s omezením.

SOUČASNÝ
platí pro: SQL Server 2012 (11.x) a novější.

Určuje, že by se měla změnit aktuální použitá databáze.

MODIFY NAME = new_database_name

Přejmenuje databázi s názvem zadaným jako new_database_name.

COLLATION_NAME COLLATE

Určuje kolaci databáze. collation_name může být buď název kolace Systému Windows, nebo název kolace SQL. Pokud není zadáno, je databázi přiřazena kolace instance SQL Serveru.

Poznámka

Kolaci nelze po vytvoření databáze ve službě Azure SQL Database změnit.

Při vytváření databází s jinou než výchozí kolací respektují data v databázi vždy zadanou kolaci. Při vytváření obsažené databáze pro SQL Server se informace z interního katalogu udržují pomocí výchozí kolace SYSTÉMU SQL Server Latin1_General_100_CI_AS_WS_KS_SC.

Další informace o názvech kolace Windows a SQL naleznete v tématu COLLATE.

<delayed_durability_option> ::=

platí pro: SQL Server 2014 (12.x) a novější.

Další informace naleznete v tématu ALTER DATABASE SET možnosti a Řízení odolnosti transakce.

<file_and_filegroup_options>::=

Další informace naleznete v tématu ALTER DATABASE File and Filegroup Options.

Poznámky

Chcete-li odebrat databázi, použijte DROP DATABASE.

Chcete-li zmenšit velikost databáze, použijte DBCC SHRINKDATABASE.

Příkaz ALTER DATABASE musí běžet v režimu automatického potvrzení (výchozí režim správy transakcí) a není povolený v explicitní nebo implicitní transakci.

Stav databázového souboru (například online nebo offline) se udržuje nezávisle na stavu databáze. Další informace naleznete v tématu Stav souborů. Stav souborů v rámci skupiny souborů určuje dostupnost celé skupiny souborů. Aby byla skupina souborů dostupná, musí být všechny soubory v rámci skupiny souborů online. Pokud je skupina souborů offline, jakýkoli pokus o přístup ke skupině souborů příkazem SQL selže s chybou. Při vytváření plánů dotazů pro příkazy SELECT se optimalizátor dotazů vyhne neclusterovaným indexům a indexovaným zobrazením umístěným v offline skupinách souborů. To umožňuje úspěšné provedení těchto příkazů. Pokud však offline skupina souborů obsahuje haldu nebo clusterovaný index cílové tabulky, příkazy SELECT selžou. Kromě toho všechny INSERT, UPDATEnebo DELETE příkazu, který upraví tabulku s libovolným indexem v offline skupině souborů, selže.

Pokud je databáze ve stavu OBNOVENÍ, většina příkazů ALTER DATABASE selže. Výjimkou je nastavení možností zrcadlení databáze. Databáze může být ve stavu OBNOVENÍ během aktivní operace obnovení nebo v případě, že operace obnovení databáze nebo souboru protokolu selže kvůli poškozenému záložnímu souboru.

Mezipaměť plánu pro instanci SQL Serveru se vymaže nastavením jedné z následujících možností.

  • KOLACIONOVAT
  • ZMĚNA VÝCHOZÍHO NASTAVENÍ FILEGROUP
  • ÚPRAVA READ_ONLY FILEGROUP
  • ÚPRAVA READ_WRITE FILEGROUP
  • MODIFY_NAME
  • OFFLINE
  • ONLINE
  • PAGE_VERIFY
  • READ_ONLY
  • READ_WRITE

Vymazání mezipaměti plánu způsobí rekompilace všech následných plánů spuštění a může způsobit náhlé dočasné snížení výkonu dotazů. Pro každé vymazání úložiště mezipaměti v mezipaměti plánu obsahuje protokol chyb SYSTÉMU SQL Server následující informační zprávu: 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. Tato zpráva se protokoluje každých pět minut, dokud se mezipaměť vyprázdní v daném časovém intervalu.

Mezipaměť plánu se také vyprázdní v následujících scénářích:

  • Databáze má možnost AUTO_CLOSE databáze nastavenou na zapnuto. Pokud žádné odkazy na připojení uživatele nebo nepoužívá databázi, úloha na pozadí se pokusí databázi zavřít a vypnout automaticky.
  • Na databázi s výchozími možnostmi spustíte několik dotazů. Databáze se pak zahodí.
  • Snímek databáze zdrojové databáze se zahodí.
  • Úspěšně znovu sestavíte transakční protokol pro databázi.
  • Obnovíte zálohu databáze.
  • Odpojte databázi.

Změna kolace databáze

Než u databáze použijete jinou kolaci, ujistěte se, že jsou splněny následující podmínky:

  • Právě používáte databázi.
  • Žádný objekt vázaný na schématu závisí na kolaci databáze.

Pokud v databázi existují následující objekty, které závisí na kolaci databáze, příkaz ALTER DATABASE database_name COLLATE selže. SQL Server vrátí chybovou zprávu pro každý objekt blokující ALTER akci:

  • Uživatelem definované funkce a zobrazení vytvořené pomocí FUNKCE SCHEMABINDING
  • Počítané sloupce
  • Omezení CHECK
  • Funkce hodnotné tabulkou, které vracejí tabulky se sloupci znaků s kolacemi zděděnými z výchozí kolace databáze

Informace o závislostech pro entity, které nejsou vázané na schéma, se při změně kolace databáze automaticky aktualizují.

Změna kolace databáze nevytváří duplicity mezi žádnými názvy systémů pro databázové objekty. Pokud výsledkem změněné kolace jsou duplicitní názvy, mohou následující obory názvů způsobit selhání změny kolace databáze:

  • Názvy objektů, jako je procedura, tabulka, trigger nebo zobrazení
  • Názvy schémat
  • Objekty zabezpečení, jako je skupina, role nebo uživatel
  • Skalární názvy typů, jako jsou systémové a uživatelem definované typy
  • Názvy fulltextového katalogu
  • Názvy sloupců nebo parametrů v rámci objektu
  • Názvy indexů v tabulce

Duplicitní názvy vyplývající z nové kolace způsobí selhání akce změny a SQL Server vrátí chybovou zprávu určující obor názvů, ve kterém byl nalezen duplikát.

Zobrazení informací o databázi

Pomocí zobrazení katalogu, systémových funkcí a systémových uložených procedur můžete vracet informace o databázích, souborech a skupinách souborů.

Dovolení

Vyžaduje ALTER oprávnění k databázi.

Příklady

A. Změna názvu databáze

Následující příklad změní název databáze AdventureWorks2022 na Northwind.

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

B. Změna kolace databáze

Následující příklad vytvoří databázi s názvem testdb s kolací SQL_Latin1_General_CP1_CI_AS a potom změní kolaci testdb databáze na COLLATE French_CI_AI.

platí pro: SQL Server 2008 (10.0.x) a novější.

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO

* SQL Database *  

spravované instance SQL

 

Přehled: SQL Database

V Azure SQL Database použijte tento příkaz k úpravě databáze. Tento příkaz použijte ke změně názvu databáze, změně cíle edice a služby databáze, připojení nebo odebrání databáze do nebo z elastického fondu, nastavení možností databáze, přidání nebo odebrání databáze jako sekundární v relaci geografické replikace a nastavení úrovně kompatibility databáze.

Vzhledem k jeho délce je syntaxe ALTER DATABASE oddělená do více článků.

ALTER DATABASE
Aktuální článek obsahuje syntaxi a související informace pro změnu názvu a dalších nastavení databáze.

možnosti ALTER DATABASE SET
Poskytuje syntaxi a související informace pro změnu atributů databáze pomocí možností SET ALTER DATABASE.

úroveň kompatibility ALTER DATABASE
Poskytuje syntaxi a související informace pro možnosti SET ALTER DATABASE, které souvisejí s úrovněmi kompatibility databáze.

Syntax

-- 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_S_Gen5_n'
      | 'HS_MOPRMS_n' 
      | 'HS_PRMS_n' 
      | { ELASTIC_POOL(name = <elastic_pool_name>) }
      }

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
  | <compatibility_level>
    { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}

Argumenty

database_name

Je název databáze, která se má upravit.

SOUČASNÝ
Určuje, že by se měla změnit aktuální použitá databáze.

MODIFY NAME = new_database_name

Přejmenuje databázi s názvem zadaným jako new_database_name. Následující příklad změní název databáze db1 na db2:

ALTER DATABASE db1
    MODIFY Name = db2 ;

MODIFY (EDITION = ['Basic' | 'Standard' | Premium | GeneralPurpose' | 'BusinessCritical' | "Hyperscale"])

Změní úroveň služby databáze.

Následující příklad změní edici na Premium:

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

Důležitý

Změna edice selže, pokud je vlastnost MAXSIZE pro databázi nastavena na hodnotu mimo platný rozsah podporovaný danou edicí.

MODIFY BACKUP_STORAGE_REDUNDANCY = ['LOCAL' | 'ZÓNA' | 'GEO']

Změní redundanci úložiště záloh obnovení k určitému bodu v čase a dlouhodobé zálohy uchovávání (pokud jsou nakonfigurované) databáze. Změny se použijí u všech budoucích záloh. Existující zálohy budou nadále používat předchozí nastavení.

Pokud chcete vynutit rezidenci dat při vytváření databáze pomocí T-SQL, použijte LOCAL nebo ZONE jako vstup do parametru BACKUP_STORAGE_REDUNDANCY.

MODIFY (MAXSIZE = [100 MB | 500 MB | 1 | 1024...4096] GB)

Určuje maximální velikost databáze. Maximální velikost musí být v souladu s platnou sadou hodnot pro vlastnost EDITION databáze. Změna maximální velikosti databáze může způsobit změnu edice databáze.

Poznámka

Argument MAXSIZE se nevztahuje na izolované databáze na úrovni služby Hyperscale. Databáze vrstvy služby Hyperscale se podle potřeby zvětšují až o 128 TB. Služba SQL Database přidává úložiště automaticky – nemusíte nastavovat maximální velikost.

model DTU

MAXSIZE Basic S0-S2 S3-S12 P1-P6 P11-P15
100 MB Ano Ano Ano Ano Ano
250 MB Ano Ano Ano Ano Ano
500 MB Ano Ano Ano Ano Ano
1 GB Ano Ano Ano Ano Ano
2 GB Ano (D) Ano Ano Ano Ano
5 GB Není k dispozici Ano Ano Ano Ano
10 GB Není k dispozici Ano Ano Ano Ano
20 GB Není k dispozici Ano Ano Ano Ano
30 GB Není k dispozici Ano Ano Ano Ano
40 GB Není k dispozici Ano Ano Ano Ano
50 GB Není k dispozici Ano Ano Ano Ano
100 GB Není k dispozici Ano Ano Ano Ano
150 GB Není k dispozici Ano Ano Ano Ano
200 GB Není k dispozici Ano Ano Ano Ano
250 GB Není k dispozici Ano (D) Ano (D) Ano Ano
300 GB Není k dispozici Ano Ano Ano Ano
400 GB Není k dispozici Ano Ano Ano Ano
500 GB Není k dispozici Ano Ano Ano (D) Ano
750 GB Není k dispozici Ano Ano Ano Ano
1024 GB Není k dispozici Ano Ano Ano Ano (D)
Od 1024 GB do 4096 GB v přírůstcích po 256 GB 1 Není k dispozici Není k dispozici Není k dispozici Není k dispozici Ano

1 P11 a P15 umožňují MAXSIZE až 4 TB s výchozí velikostí 1024 GB. P11 a P15 mohou bez dalších poplatků využívat až 4 TB zahrnutého úložiště. Na úrovni Premium je maxSIZE větší než 1 TB aktuálně k dispozici v následujících oblastech: USA – východ 2, USA – západ, US Gov – Virginie, Západní Evropa, Německo – střed, Jihovýchodní Asie, Japonsko – východ, Austrálie – východ, Kanada – střed a Kanada – východ. Další podrobnosti o omezeních prostředků pro model DTU najdete v tématu omezení prostředků DTU.

Hodnota MAXSIZE pro model DTU , pokud je zadána, musí být platná hodnota zobrazená v předchozí tabulce pro zadanou úroveň služby.

Omezení, jako je maximální velikost dat a velikost tempdb v nákupním modelu virtuálních jader, najdete v článcích o omezeních prostředků pro izolované databáze nebo limity prostředků pro elastické fondy.

Pokud se při použití modelu virtuálních jader nenastaví žádná MAXSIZEhodnota, výchozí hodnota je 32 GB. Další podrobnosti o omezeních prostředků pro model virtuálních jader najdete v tématu omezení prostředků virtuálních jader.

Následující pravidla platí pro argumenty MAXSIZE a EDITION:

  • Pokud je zadaná edice, ale hodnota MAXSIZE není zadaná, použije se výchozí hodnota edice. Je například edice nastavená na Standard a není zadána hodnota MAXSIZE, hodnota MAXSIZE se automaticky nastaví na 250 MB.
  • Pokud není zadána hodnota MAXSIZE ani EDITION, je edice nastavena na úroveň Pro obecné účely a hodnota MAXSIZE je nastavená na 32 GB.

MODIFY (SERVICE_OBJECTIVE = <>cíle služby )

Určuje velikost výpočetních prostředků a cíl služby.

SERVICE_OBJECTIVE

Určuje velikost výpočetních prostředků (označovanou také jako cíl na úrovni služby nebo cíl úrovně služby).

  • Nákupní model DTU: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15. Projděte si omezení prostředků pro izolované databáze DTU nebo limity prostředků pro elastické fondy DTU a vyhledejte počet DTU přiřazených ke každé velikosti výpočetních prostředků.
  • Pro nákupní model virtuálních jader zvolte úroveň a zadejte počet virtuálních jader z přednastaveného seznamu hodnot, kde je počet virtuálních jader n. Podívejte se na limity prostředků pro izolované databáze virtuálních jader nebo limity prostředků pro elastické fondy virtuálních jader.
    • Například:
    • GP_Gen5_8 pro obecné účely, zřízené výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader.
    • GP_S_Gen5_8 pro obecné účely, bezserverové výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader.
    • HS_Gen5_8 pro Hyperscale, zřízené výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader.
    • HS_S_Gen5_8 pro Hyperscale, bezserverové výpočetní prostředky, řadu Standard (Gen5), 8 virtuálních jader.

Následující ukázka například změní cíl služby databáze úrovně Premium v nákupním modelu DTU na P6:

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

Následující ukázka například změní cíl služby zřízené výpočetní databáze v nákupním modelu virtuálních jader na GP_Gen5_8:

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

DATABASE_NAME

Pouze pro Hyperscale služby Azure SQL Database. Název databáze, který se vytvoří. Pouze azure SQL Database Hyperscale pojmenované repliky používá, když SECONDARY_TYPE = NAMED. Další informace najdete v tématu sekundární repliky hyperškálování.

SECONDARY_TYPE

Pouze pro Hyperscale služby Azure SQL Database. GEO určuje geografickou repliku, POJMENOVANÁ určuje pojmenovanou repliku. Výchozí hodnota je GEO. Další informace najdete v tématu sekundární repliky hyperškálování.

Popisy cílů služby a další informace o kombinacích velikostí, edicí a cílů služby najdete v tématu Porovnání nákupních modelů založených na virtuálních jádrech a DTU služby azure SQL Database, omezení prostředků DTU a omezení prostředků virtuálních jader. Podpora cílů služby PRS byla odebrána.

Pokud není zadán SERVICE_OBJECTIVE, sekundární databáze se vytvoří na stejné úrovni služby jako primární databáze. Po zadání SERVICE_OBJECTIVE se sekundární databáze vytvoří na zadané úrovni. Zadaný SERVICE_OBJECTIVE musí být ve stejné edici jako zdroj. Pokud je například edice Premium, nemůžete zadat S0.

MODIFY (SERVICE_OBJECTIVE = ELASTIC_POOL (název = <elastic_pool_name>)

Pokud chcete do elastického fondu přidat existující databázi, nastavte SERVICE_OBJECTIVE databáze na ELASTIC_POOL a zadejte název elastického fondu. Tuto možnost můžete použít také ke změně databáze na jiný elastický fond na stejném serveru. Další informace najdete v tématu Elastické fondy, které vám pomůžou spravovat a škálovat více databází ve službě Azure SQL Database. Pokud chcete odebrat databázi z elastického fondu, nastavte pomocí příkazu ALTER DATABASE SERVICE_OBJECTIVE na velikost výpočetních prostředků izolované databáze (cíl služby).

Poznámka

Databáze na úrovni služby Hyperscale nejde přidat do elastického fondu.

PŘIDÁNÍ SEKUNDÁRNÍHO <PARTNER_SERVER_NAME> SERVERU

Vytvoří sekundární databázi geografické replikace se stejným názvem na partnerském serveru, čímž se místní databáze převede na primární geografickou replikaci a začne asynchronně replikovat data z primárního do nového sekundárního serveru. Pokud databáze se stejným názvem už v sekundární databázi existuje, příkaz selže. Příkaz se spustí na master databázi na serveru, který je hostitelem místní databáze, která se stane primární.

Důležitý

Ve výchozím nastavení se sekundární databáze vytvoří se stejnou redundancí úložiště zálohování jako primární nebo zdrojová databáze. Změna redundance úložiště zálohování při vytváření sekundárního úložiště není podporována prostřednictvím T-SQL.

WITH ALLOW_CONNECTIONS { ALL | NO }

Pokud není zadaný ALLOW_CONNECTIONS, je ve výchozím nastavení nastavená na ALL. Pokud je nastavená možnost ALL, jedná se o databázi určenou jen pro čtení, která umožňuje připojení všech přihlášení s odpovídajícími oprávněními.

ELASTIC_POOL (název = <elastic_pool_name>)

Pokud není zadaný ELASTIC_POOL, sekundární databáze se nevytvořila v elastickém fondu. Po zadání ELASTIC_POOL se v zadaném fondu vytvoří sekundární databáze.

Důležitý

Uživatel, který spouští příkaz ADD SECONDARY, musí být DBManager na primárním serveru, musí mít db_owner členství v místní databázi a DBManager na sekundárním serveru. IP adresa klienta musí být přidána do seznamu povolených v rámci pravidel brány firewall pro primární i sekundární servery. V případě různých IP adres klienta musí být do sekundárního serveru přidána stejná IP adresa klienta, která byla přidána na primární server. Tento krok je nutný k provedení před spuštěním příkazu ADD SECONDARY pro zahájení geografické replikace.

ODEBRÁNÍ SEKUNDÁRNÍHO <PARTNER_SERVER_NAME> SERVERU

Odebere zadanou geograficky replikovanou sekundární databázi na zadaném serveru. Příkaz se spustí v databázi master na serveru, který je hostitelem primární databáze.

Důležitý

Uživatel, který spouští příkaz REMOVE SECONDARY, musí být dbManager na primárním serveru.

PŘEVZETÍ SLUŽEB PŘI SELHÁNÍ

Podporuje sekundární databázi v partnerství geografické replikace, na kterém se příkaz provede, aby se stal primárním a degraduje aktuální primární server, aby se stal novým sekundárním. V rámci tohoto procesu se režim geografické replikace dočasně přepne z asynchronního režimu na synchronní režim. Během procesu převzetí služeb při selhání:

  1. Primární přestane přebít nové transakce.
  2. Všechny nevyřízených transakcí se vyprázdní na sekundární.
  3. Sekundární se stane primární a začne asynchronní geografickou replikaci se starým primárním / novým sekundárním serverem.

Tato posloupnost zajišťuje, že nedojde ke ztrátě dat. Období, během kterého jsou obě databáze nedostupné, je v pořadí od 0 do 25 sekund, zatímco se role přepnou. Celková operace by neměla trvat déle než přibližně jednu minutu. Pokud je primární databáze při vydání tohoto příkazu nedostupná, příkaz selže s chybovou zprávou, že primární databáze není k dispozici. Pokud se proces převzetí služeb při selhání nedokončí a zobrazí se zablokovaný, můžete použít příkaz vynuceného převzetí služeb při selhání a přijmout ztrátu dat – a pokud potřebujete obnovit ztracená data, zavolejte devops (CSS) a obnovte ztracená data.

Důležitý

Uživatel, který spouští příkaz PŘEVZETÍ SLUŽEB PŘI SELHÁNÍ, musí být dbManager na primárním i sekundárním serveru.

FORCE_FAILOVER_ALLOW_DATA_LOSS

Podporuje sekundární databázi v partnerství geografické replikace, na kterém se příkaz provede, aby se stal primárním a degraduje aktuální primární server, aby se stal novým sekundárním. Tento příkaz použijte pouze v případě, že aktuální primární server už není k dispozici. Je určen pouze pro zotavení po havárii, pokud je obnovení dostupnosti kritické a některé ztráty dat jsou přijatelné.

Během vynuceného převzetí služeb při selhání:

  1. Zadaná sekundární databáze se okamžitě stane primární databází a začne přijímat nové transakce.
  2. Když se původní primární server může znovu připojit k nové primární, provede se přírůstková záloha na původní primární databázi a původní primární server se stane novou sekundární.
  3. Pokud chce uživatel obnovit data z této přírůstkové zálohy na staré primární databázi, zapojí devops/CSS.
  4. Pokud existují další sekundární soubory, automaticky se překonfigurují tak, aby se staly sekundárními novými primárními. Tento proces je asynchronní a může do dokončení tohoto procesu dojít ke zpoždění. Dokud se rekonfigurace nedokončí, budou sekundární i nadále sekundáři starého primárního serveru.

Důležitý

Uživatel, který spouští příkaz FORCE_FAILOVER_ALLOW_DATA_LOSS, musí patřit do role dbmanager na primárním i sekundárním serveru.

Poznámky

Chcete-li odebrat databázi, použijte DROP DATABASE. Chcete-li zmenšit velikost databáze, použijte DBCC SHRINKDATABASE.

Příkaz ALTER DATABASE musí běžet v režimu automatického potvrzení (výchozí režim správy transakcí) a není povolený v explicitní nebo implicitní transakci.

Vymazání mezipaměti plánu způsobí rekompilace všech následných plánů spuštění a může způsobit náhlé dočasné snížení výkonu dotazů. Pro každé vymazání úložiště mezipaměti v mezipaměti plánu obsahuje protokol chyb SYSTÉMU SQL Server následující informační zprávu: 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. Tato zpráva se protokoluje každých pět minut, dokud se mezipaměť vyprázdní v daném časovém intervalu.

Mezipaměť procedur je také vyprázdněna v následujícím scénáři: Spustíte několik dotazů na databázi s výchozími možnostmi. Databáze se pak zahodí.

Zobrazení informací o databázi

Pomocí zobrazení katalogu, systémových funkcí a systémových uložených procedur můžete vracet informace o databázích, souborech a skupinách souborů.

Dovolení

Pokud chcete změnit databázi, musí být přihlašovací jméno správce serveru (vytvořené při zřízení logického serveru Azure SQL Database), správce serveru Microsoft Entra, člen databázové role dbmanager v master, člen role databáze db_owner databáze v aktuální databázi nebo dbo databáze. Microsoft Entra ID je (dříve Azure Active Directory).

Ke škálování databází prostřednictvím T-SQL je potřeba oprávnění ALTER DATABASE. Ke škálování databází prostřednictvím webu Azure Portal, PowerShellu, Azure CLI nebo rozhraní REST API se vyžadují oprávnění Azure RBAC, konkrétně role Přispěvatel, Přispěvatel databáze SQL nebo Role Azure RBAC přispěvatele SQL Serveru. Další informace najdete v předdefinovaných rolí Azure.

Příklady

A. Zkontrolujte možnosti edice a změňte je.

Nastaví edici a maximální velikost pro db1databáze:

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. Přesun databáze do jiného elastického fondu

Přesune existující databázi do fondu s názvem pool1:

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

C. Přidání sekundárního Geo-Replication

Vytvoří db1 sekundární databáze čitelné na serveru secondaryserverdb1 na místním serveru.

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

D. Odebrání sekundárního Geo-Replication

Odebere sekundární databázi db1 na serveru secondaryserver.

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver;

E. Převzetí služeb při selhání do sekundárního Geo-Replication

Podporuje sekundární databázi db1 na serveru secondaryserver stát se novou primární databází při spuštění na serveru secondaryserver.

ALTER DATABASE db1 FAILOVER;

Poznámka

Další informace najdete v tématu pokyny k zotavení po havárii – Azure SQL Database a kontrolní seznamAzure SQL Database s vysokou dostupností a zotavením po havárii.

F. Vynucení převzetí služeb při selhání na Geo-Replication Sekundární se ztrátou dat

Vynutí sekundární databázi db1 na serveru secondaryserver stát se novou primární databází při spuštění na serveru secondaryserver, v případě, že primární server přestane být dostupný. Tato možnost může způsobovat ztrátu dat.

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS;

G. Aktualizace izolované databáze na úroveň služby S0 (edice Standard, úroveň výkonu 0)

Aktualizuje jednoúčelovou databázi na edici Standard (úroveň služby) s velikostí výpočetních prostředků (cíl služby) S0 a maximální velikostí 250 GB.

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

H. Aktualizace redundance úložiště zálohování databáze

Aktualizuje redundanci úložiště zálohování databáze na zónově redundantní. Všechny budoucí zálohy této databáze používají nové nastavení. To zahrnuje zálohy obnovení k určitému bodu v čase a dlouhodobé zálohy uchovávání (pokud jsou nakonfigurované).

ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE';

SQL Database

* SQL Managed Instance *  

 

Přehled: Azure SQL Managed Instance

Ve službě Azure SQL Managed Instance použijte tento příkaz k nastavení možností databáze.

Vzhledem k jeho délce je syntaxe ALTER DATABASE oddělená do více článků.

Článek Popis
ALTER DATABASE
Aktuální článek obsahuje syntaxi a související informace o nastavení možností souborů a skupin souborů, nastavení možností databáze a nastavení úrovně kompatibility databáze.
možnosti souborů ALTER DATABASE a skupin souborů
Poskytuje syntaxi a související informace pro přidávání a odebírání souborů a skupin souborů z databáze a pro změnu atributů souborů a skupin souborů.
možnosti ALTER DATABASE SET
Poskytuje syntaxi a související informace pro změnu atributů databáze pomocí možností SET ALTER DATABASE.
úroveň kompatibility ALTER DATABASE
Poskytuje syntaxi a související informace pro možnosti SET ALTER DATABASE, které souvisejí s úrovněmi kompatibility databáze.

Syntax

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

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

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>  
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <temporal_history_retention>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}  

Argumenty

database_name

Je název databáze, která se má upravit.

SOUČASNÝ
Určuje, že by se měla změnit aktuální použitá databáze.

Poznámky

  • Chcete-li odebrat databázi, použijte DROP DATABASE.

  • Chcete-li zmenšit velikost databáze, použijte DBCC SHRINKDATABASE.

  • Příkaz ALTER DATABASE musí běžet v režimu automatického potvrzení (výchozí režim správy transakcí) a není povolený v explicitní nebo implicitní transakci.

  • Mezipaměť plánů pro spravovanou instanci Azure SQL se vymaže nastavením jedné z následujících možností.

    • KOLACIONOVAT

    • ZMĚNA VÝCHOZÍHO NASTAVENÍ FILEGROUP

    • ÚPRAVA READ_ONLY FILEGROUP

    • ÚPRAVA READ_WRITE FILEGROUP

    • ZMĚNIT NÁZEV

      Vymazání mezipaměti plánu způsobí rekompilace všech následných plánů spuštění a může způsobit náhlé dočasné snížení výkonu dotazů. Pro každé vymazání úložiště mezipaměti v mezipaměti plánu obsahuje protokol chyb SYSTÉMU SQL Server následující informační zprávu: 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. Tato zpráva se protokoluje každých pět minut, dokud se mezipaměť vyprázdní v daném časovém intervalu. Mezipaměť plánu se také vyprázdní, když se na databázi s výchozími možnostmi spustí několik dotazů. Databáze se pak zahodí.

  • Některé příkazy ALTER DATABASE vyžadují, aby se spustil výhradní zámek databáze. To je důvod, proč může selhat, když jiný aktivní proces drží zámek v databázi. Chyba hlášená v takovém případě je Msg 5061, Level 16, State 1, Line 38 se zprávou ALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later. Obvykle se jedná o přechodné selhání a jeho vyřešení, jakmile se uvolní všechny zámky v databázi, zkuste příkaz ALTER DATABASE, který selhal. Systémové zobrazení sys.dm_tran_locks uchovává informace o aktivních zámcích. Pokud chcete zkontrolovat, jestli databáze nemá sdílené nebo exkluzivní zámky, použijte následující dotaz.

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

Zobrazení informací o databázi

Pomocí zobrazení katalogu, systémových funkcí a systémových uložených procedur můžete vracet informace o databázích, souborech a skupinách souborů.

Dovolení

Databázi můžou změnit pouze hlavní přihlášení na úrovni serveru (vytvořené procesem zřizování) nebo členové role databáze dbcreator.

Důležitý

Vlastník databáze nemůže databázi změnit, pokud není členem dbcreator role.

Příklady

Následující příklady ukazují, jak nastavit automatické ladění a jak přidat soubor do databáze ve službě Azure SQL Managed Instance.

ALTER DATABASE WideWorldImporters
  SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);

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

SQL Database

spravované instance SQL

* Azure Synapse
Analýza *
 

 

Přehled: Azure Synapse Analytics

V Azure Synapse ALTER DATABASE upraví určité možnosti konfigurace vyhrazeného fondu SQL.

Vzhledem k jeho délce je syntaxe ALTER DATABASE oddělená do více článků.

možnosti ALTER DATABASE SET poskytují syntaxi a související informace pro změnu atributů databáze pomocí možností SET ALTER DATABASE.

Syntax

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'
      }

Argumenty

database_name

Určuje název databáze, která se má upravit.

MODIFY NAME = new_database_name

Přejmenuje databázi s názvem zadaným jako new_database_name.

Možnost MODIFY NAME má v Azure Synapse určitá omezení podpory:

  • Nepodporované fondy bezserverových fondů Azure Synapse
  • Nepodporované s vyhrazenými fondy SQL vytvořenými v pracovním prostoru Azure Synapse
  • Podporováno u vyhrazených fondů SQL (dříve SQL DW) vytvořených prostřednictvímwebu Azure Portal, včetně fondů s připojeným pracovním prostorem

MAXSIZE

Výchozí hodnota je 245 760 GB (240 TB).

platí pro: optimalizované pro Compute Gen1

Maximální povolená velikost databáze. Databáze nemůže růst nad rámec MAXSIZE.

platí pro: optimalizované pro Compute Gen2

Maximální povolená velikost dat úložiště řádků v databázi. Data uložená v tabulkách rowstore, rozdílovém úložišti indexu columnstore nebo neclusterovaného indexu v clusterovém indexu columnstore se nemůžou zvětšit nad rámec MAXSIZE. Data komprimovaná do formátu columnstore nemají limit velikosti a není omezena hodnotou MAXSIZE.

SERVICE_OBJECTIVE

Určuje velikost výpočetních prostředků (cíl služby). Další informace o cílech služby pro Azure Synapse najdete v tématujednotky datového skladu (DWU).

Dovolení

Vyžaduje tato oprávnění:

  • Přihlášení objektu zabezpečení na úrovni serveru (vytvořené procesem zřizování) nebo
  • Člen role databáze dbmanager.

Vlastník databáze nemůže změnit databázi, pokud vlastník není členem dbmanager role.

Poznámky

Aktuální databáze musí být jiná než databáze, kterou měníte, a proto se při připojení k databázi master musí spustit příkaz ALTER.

COMPATIBILITY_LEVEL v SQL Analytics je ve výchozím nastavení nastavená na 130 a nedá se změnit. Další informace naleznete v tématu ÚROVEŇ kompatibility ALTER DATABASE.

Poznámka

COMPATIBILITY_LEVEL se vztahuje pouze na zřízené prostředky (fondy).

Omezení

Pokud chcete spustit ALTER DATABASE, musí být databáze online a nemůže být v pozastaveném stavu.

Příkaz ALTER DATABASE musí běžet v režimu automatického potvrzení, což je výchozí režim správy transakcí. Toto nastavení je nastavené v nastavení připojení.

Příkaz ALTER DATABASE nemůže být součástí uživatelem definované transakce.

Kolaci databáze nemůžete změnit.

Příklady

Před spuštěním těchto příkladů se ujistěte, že databáze, kterou upravujete, není aktuální databází. Aktuální databáze musí být jiná než databáze, kterou měníte, a proto se při připojení k databázi master musí spustit příkaz ALTER.

A. Změna názvu databáze

ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;

B. Změna maximální velikosti databáze

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );

C. Změna velikosti výpočetních prostředků (cíl služby)

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

D. Změna maximální velikosti a velikosti výpočetních prostředků (cíl služby)

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

SQL Database

spravované instance SQL

* Analytics
Systém platformy (PDW) *
 

 

Přehled: Systém analytických platforem

V systému PDW (Analytics Platform System) alter DATABASE upravuje maximální možnosti velikosti databáze pro replikované tabulky, distribuované tabulky a transakční protokol. Tento příkaz použijte ke správě přidělení místa na disku pro databázi při růstu nebo zmenšení velikosti. Tento článek také popisuje syntaxi související s nastavením možností databáze v systému PDW (Analytics Platform System).

Syntax

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

Argumenty

database_name

Název databáze, která se má upravit. Chcete-li zobrazit seznam databází na zařízení, použijte sys.databases.

AUTOGROW = { ON | VYPNUTO }

Aktualizuje možnost AUTOGROW. Pokud je funkce AUTOGROW zapnutá, analytický systém (PDW) automaticky zvýší přidělený prostor pro replikované tabulky, distribuované tabulky a transakční protokol podle potřeby tak, aby vyhovoval nárůstu požadavků na úložiště. Pokud je funkce AUTOGROW vypnutá, vrátí analytický systém (PDW) chybu, pokud replikované tabulky, distribuované tabulky nebo transakční protokol překročí nastavení maximální velikosti.

REPLICATED_SIZE = velikost [GB]

Určuje nové maximální gigabajty na výpočetní uzel pro ukládání všech replikovaných tabulek v databázi, které se mění. Pokud plánujete prostor úložiště zařízení, musíte vynásobit REPLICATED_SIZE počtem výpočetních uzlů v zařízení.

DISTRIBUTED_SIZE = velikost [GB]

Určuje nové maximální gigabajty na databázi pro ukládání všech distribuovaných tabulek v databázi, které se mění. Velikost se distribuuje napříč všemi výpočetními uzly v zařízení.

LOG_SIZE = velikost [GB]

Určuje nové maximální gigabajty na databázi pro ukládání všech transakčních protokolů do databáze, které se mění. Velikost se distribuuje napříč všemi výpočetními uzly v zařízení.

ŠIFROVÁNÍ { ZAPNUTO | VYPNUTO }

Nastaví databázi tak, aby byla zašifrována (ZAPNUTO) nebo není zašifrovaná (VYPNUTO). Šifrování lze nakonfigurovat pouze pro systém PDW (Analytics Platform System), pokud je sp_pdw_database_encryption nastavena na 1. Před konfigurací transparentního šifrování dat je nutné vytvořit šifrovací klíč databáze. Další informace o šifrování databáze naleznete v tématu transparentní šifrování dat (TDE).

SET AUTO_CREATE_STATISTICS { ON | VYPNUTO }

Pokud je možnost automatického vytvoření statistiky AUTO_CREATE_STATISTICS zapnutá, optimalizátor dotazů podle potřeby vytvoří statistiky o jednotlivých sloupcích v predikátu dotazu, aby se zlepšily odhady kardinality pro plán dotazu. Tyto statistiky s jedním sloupcem se vytvářejí ve sloupcích, které ještě nemají histogram v existujícím objektu statistiky.

Výchozí hodnota je zapnutá pro nové databáze vytvořené po upgradu na AU7. Výchozí hodnota je vypnutá pro databáze vytvořené před upgradem.

Další informace o statistikách najdete v tématu Statistika

SET AUTO_UPDATE_STATISTICS { ON | VYPNUTO }

Pokud je možnost automatické statistiky aktualizace AUTO_UPDATE_STATISTICS zapnutá, optimalizátor dotazů určí, kdy může být statistika zahlcená, a pak je aktualizuje, když je používá dotaz. Statistiky se po vložení, aktualizaci, odstranění nebo sloučení změní rozdělení dat v tabulce nebo indexovém zobrazení zastaralou. Optimalizátor dotazů určuje, kdy statistiky můžou být zastaralé, počítáním počtu úprav dat od poslední aktualizace statistiky a porovnáním počtu úprav s prahovou hodnotou. Prahová hodnota je založená na počtu řádků v tabulce nebo indexovaném zobrazení.

Výchozí hodnota je zapnutá pro nové databáze vytvořené po upgradu na AU7. Výchozí hodnota je vypnutá pro databáze vytvořené před upgradem.

Další informace o statistikách naleznete v tématu Statistika.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | VYPNUTO }

Možnost aktualizace asynchronní statistiky AUTO_UPDATE_STATISTICS_ASYNC určuje, jestli optimalizátor dotazů používá synchronní nebo asynchronní aktualizace statistik. Možnost AUTO_UPDATE_STATISTICS_ASYNC se vztahuje na objekty statistik vytvořené pro indexy, jednotlivé sloupce v predikátech dotazu a statistiky vytvořené pomocí příkazu CREATE STATISTICS.

Výchozí hodnota je zapnutá pro nové databáze vytvořené po upgradu na AU7. Výchozí hodnota je vypnutá pro databáze vytvořené před upgradem.

Další informace o statistikách naleznete v tématu Statistika.

Dovolení

Vyžaduje oprávnění ALTER k databázi.

Chybové zprávy

Pokud jsou automatické statistiky zakázané a pokusíte se změnit nastavení statistiky, pdW zobrazí výstup chyby This option isn't supported in PDW. Správce systému může povolit automatické statistiky povolením přepínače funkce Automatické statistikyEnabled.

Poznámky

Hodnoty pro REPLICATED_SIZE, DISTRIBUTED_SIZEa LOG_SIZE mohou být větší, rovny nebo menší než aktuální hodnoty databáze.

Omezení

Operace zvětšení a zmenšení jsou přibližné. Výsledné skutečné velikosti se mohou lišit od parametrů velikosti.

Systém PDW (Analytics Platform System) neprovádí příkaz ALTER DATABASE jako atomické operace. Pokud se příkaz během provádění přeruší, změny, ke kterým již došlo, zůstanou.

Nastavení statistiky funguje jenom v případě, že správce povolil automatické statistiky. Pokud jste správce, pomocí přepínače funkcí Automatické statistikyEnabled povolte nebo zakažte automatické statistiky.

Chování uzamčení

Vezme sdílený zámek objektu DATABASE. Databázi, kterou používá jiný uživatel pro čtení nebo zápis, nemůžete změnit. To zahrnuje relace, které v databázi vydaly příkaz USE.

Představení

Zmenšení databáze může trvat hodně času a systémových prostředků v závislosti na velikosti skutečných dat v databázi a množství fragmentace disku. Například zmenšení databáze může trvat několik hodin nebo déle.

Určení průběhu šifrování

Pomocí následujícího dotazu můžete určit průběh transparentního šifrování dat databáze jako procento:

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

Úplný příklad demonstrující všechny kroky při implementaci transparentního šifrování dat najdete v tématu transparentního šifrování dat (TDE).

Příklady: Systém analytických platforem (PDW)

A. Změna nastavení AUTOGROW

Pro CustomerSalesdatabáze nastavte funkci AUTOGROW na ZAPNUTO .

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Změna maximálního úložiště pro replikované tabulky

Následující příklad nastaví omezení úložiště replikované tabulky na 1 GB pro databázi CustomerSales. Toto je limit úložiště na výpočetní uzel.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Změna maximálního úložiště distribuovaných tabulek

Následující příklad nastaví limit distribuovaného úložiště tabulek na 1000 GB (jeden terabajt) pro databázi CustomerSales. Toto je kombinovaný limit úložiště napříč zařízením pro všechny výpočetní uzly, nikoli limit úložiště na výpočetní uzel.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Změna maximálního úložiště pro transakční protokol

Následující příklad aktualizuje databázi CustomerSales tak, aby měla maximální velikost transakčního protokolu SQL Serveru 10 GB zařízení.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Kontrola aktuálních hodnot statistik

Následující dotaz vrátí aktuální statistické hodnoty pro všechny databáze. Hodnota 1 znamená, že je funkce zapnutá a 0 znamená, že je funkce vypnutá.

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

F. Povolení statistik automatického vytváření a automatické aktualizace pro databázi

Pomocí následujícího příkazu můžete povolit automatické a asynchronní vytváření statistik pro databáze CustomerSales. Podle potřeby se vytvoří a aktualizuje statistiky s jedním sloupcem, aby se vytvořily vysoce kvalitní plány dotazů.

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

Přehled: Microsoft Fabric

SQL Database

spravované instance SQL

Microsoft Fabric

V Microsoft Fabric Warehouse tento příkaz upraví sklad.

Vzhledem k jeho délce je syntaxe ALTER DATABASE oddělená do více článků.

Článek Popis
ALTER DATABASE Aktuální článek obsahuje syntaxi a související informace pro změnu názvu a kolace databáze.
možnosti ALTER DATABASE SET Poskytuje syntaxi a související informace pro změnu atributů databáze pomocí možností SET ALTER DATABASE.

Poznámky

V současné době pozastavení publikování protokolů Delta Lake a zakázání chování objednávky V-Order ve skladu se používají pouze pro ALTER DATABASE ... SET v Microsoft Fabric. Viz možnosti ALTER DATABASE SET.