Delen via


ALTER DATABASE (Transact-SQL)

Hiermee wijzigt u bepaalde configuratieopties van een database.

Dit artikel bevat de syntaxis, argumenten, opmerkingen, machtigingen en voorbeelden voor het SQL-product dat u kiest.

Zie Transact-SQL syntaxisconventiesvoor meer informatie over de syntaxisconventies.

Een product selecteren

Selecteer in de volgende rij de productnaam waarin u geïnteresseerd bent en alleen de informatie van dat product wordt weergegeven.

* SQL Server *  

 

Overzicht: SQL Server

In SQL Server wijzigt deze instructie een database of de bestanden en bestandsgroepen die aan de database zijn gekoppeld. ALTER DATABASE voegt bestanden en bestandsgroepen toe aan of verwijdert deze uit een database, wijzigt de kenmerken van een database of de bijbehorende bestanden en bestandsgroepen, wijzigt de sortering van de database en stelt databaseopties in. Databasemomentopnamen kunnen niet worden gewijzigd. Als u databaseopties wilt wijzigen die zijn gekoppeld aan replicatie, gebruikt u sp_replicationdboption.

Vanwege de lengte is de ALTER DATABASE syntaxis gescheiden in de meerdere artikelen.

Artikel Beschrijving
ALTER DATABASE Het huidige artikel bevat de syntaxis en gerelateerde informatie voor het wijzigen van de naam en de sortering van een database.
ALTER DATABASE File and Filegroup Options Biedt de syntaxis en gerelateerde informatie voor het toevoegen en verwijderen van bestanden en bestandsgroepen uit een database, en voor het wijzigen van de kenmerken van de bestanden en bestandsgroepen.
OPTIES VOOR ALTER DATABASE SET Biedt de syntaxis en gerelateerde informatie voor het wijzigen van de kenmerken van een database met behulp van de SET-opties van ALTER DATABASE.
ALTER DATABASE Mirroring Bevat de syntaxis en gerelateerde informatie voor de SET-opties van ALTER DATABASE die zijn gerelateerd aan databasespiegeling.
ALTER DATABASE SET HADR Biedt de syntaxis en gerelateerde informatie voor de opties voor AlwaysOn-beschikbaarheidsgroepen van ALTER DATABASE voor het configureren van een secundaire database op een secundaire replica van een AlwaysOn-beschikbaarheidsgroep.
ALTER DATABASE-compatibiliteitsniveau Biedt de syntaxis en gerelateerde informatie voor de SET-opties van ALTER DATABASE die zijn gerelateerd aan databasecompatibiliteitsniveaus.
DATABASECONFIGURATIE WIJZIGEN Biedt de syntaxis met betrekking tot databaseconfiguraties die worden gebruikt voor instellingen op databaseniveau, zoals queryoptimalisatie en gedrag met betrekking tot queryuitvoering.

Syntaxis

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

Argumenten

database_name

Is de naam van de database die moet worden gewijzigd.

Notitie

Deze optie is niet beschikbaar in een ingesloten database.

ACTUEEL
Van toepassing op: SQL Server 2012 (11.x) en hoger.

Hiermee wordt aangegeven dat de huidige database die wordt gebruikt, moet worden gewijzigd.

MODIFY NAME = new_database_name

Wijzigt de naam van de database met de naam die is opgegeven als new_database_name.

COLLATION_NAME

Hiermee geeft u de sortering voor de database. collation_name kan een Windows-sorteringsnaam of een SQL-sorteringsnaam zijn. Als dit niet is opgegeven, wordt aan de database de sortering van het exemplaar van SQL Server toegewezen.

Notitie

Sortering kan niet worden gewijzigd nadat de database is gemaakt in Azure SQL Database.

Bij het maken van databases met een andere sortering dan de standaardsortering, respecteren de gegevens in de database altijd de opgegeven sortering. Voor SQL Server wordt bij het maken van een ingesloten database de interne catalogusgegevens onderhouden met behulp van de standaardsortering van SQL Server, Latin1_General_100_CI_AS_WS_KS_SC.

Zie COLLATEvoor meer informatie over de namen van Windows- en SQL-sorteringen.

<delayed_durability_option> ::=

Van toepassing op: SQL Server 2014 (12.x) en hoger.

Zie OPTIES ALTER DATABASE SET en Control Transaction Durabilityvoor meer informatie.

<file_and_filegroup_options>::=

Zie ALTER DATABASE File and Filegroup Optionsvoor meer informatie.

Opmerkingen

Als u een database wilt verwijderen, gebruikt u DROP DATABASE.

Als u de grootte van een database wilt verkleinen, gebruikt u DBCC SHRINKDATABASE.

De instructie ALTER DATABASE moet worden uitgevoerd in de modus voor automatisch doorvoeren (de standaardmodus voor transactiebeheer) en is niet toegestaan in een expliciete of impliciete transactie.

De status van een databasebestand (bijvoorbeeld online of offline) wordt onafhankelijk van de status van de database onderhouden. Zie Bestandsstatussenvoor meer informatie. De status van de bestanden in een bestandsgroep bepaalt de beschikbaarheid van de hele bestandsgroep. Als een bestandsgroep beschikbaar is, moeten alle bestanden in de bestandsgroep online zijn. Als een bestandsgroep offline is, mislukt een poging om toegang te krijgen tot de bestandsgroep door een SQL-instructie met een fout. Wanneer u queryplannen voor SELECT-instructies maakt, voorkomt de optimalisatiefunctie voor query's niet-geclusterde indexen en geïndexeerde weergaven die zich in offlinebestandsgroepen bevinden. Hierdoor kunnen deze instructies slagen. Als de offlinebestandsgroep echter de heap- of geclusterde index van de doeltabel bevat, mislukken de SELECT-instructies. Bovendien mislukt elke INSERT- of UPDATE- of DELETE-instructie waarmee een tabel wordt gewijzigd met een index in een offline bestandsgroep.

Wanneer een database de status HERSTELLEN heeft, mislukken de meeste ALTER DATABASE instructies. De uitzondering is het instellen van opties voor databasespiegeling. Een database heeft mogelijk de status HERSTELLEN tijdens een actieve herstelbewerking of wanneer een herstelbewerking van een database of logboekbestand mislukt vanwege een beschadigd back-upbestand.

De plancache voor het exemplaar van SQL Server wordt gewist door een van de volgende opties in te stellen.

  • SORTEREN
  • STANDAARDBESTANDSGROEP WIJZIGEN
  • FILEGROUP-READ_ONLY WIJZIGEN
  • FILEGROUP-READ_WRITE WIJZIGEN
  • MODIFY_NAME
  • OFFLINE
  • ONLINE
  • PAGE_VERIFY
  • READ_ONLY
  • READ_WRITE

Als u de plancache wist, wordt een hercompilatie van alle volgende uitvoeringsplannen veroorzaakt. Dit kan een plotselinge, tijdelijke afname van de queryprestaties veroorzaken. Voor elke gewiste cacheopslag in de plancache bevat het SQL Server-foutenlogboek het volgende informatieve bericht: 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. Dit bericht wordt elke vijf minuten geregistreerd zolang de cache binnen dat tijdsinterval wordt leeggemaakt.

De plancache wordt ook leeggemaakt in de volgende scenario's:

  • Voor een database is de optie AUTO_CLOSE database ingesteld op AAN. Wanneer er geen gebruikersverbindingsverwijzingen zijn of de database worden gebruikt, probeert de achtergrondtaak de database automatisch te sluiten en af te sluiten.
  • U voert verschillende query's uit op een database met standaardopties. Vervolgens wordt de database verwijderd.
  • Een momentopname van een database voor een brondatabase wordt verwijderd.
  • U hebt het transactielogboek voor een database opnieuw opgebouwd.
  • U herstelt een databaseback-up.
  • U koppelt een database los.

De databasesortering wijzigen

Voordat u een andere sortering toepast op een database, moet u ervoor zorgen dat aan de volgende voorwaarden wordt voldaan:

  • U bent de enige die momenteel de database gebruikt.
  • Er is geen schemagebonden object afhankelijk van de sortering van de database.

Als de volgende objecten, die afhankelijk zijn van de databasesortering, aanwezig zijn in de database, mislukt de instructie ALTER DATABASE database_name COLLATE. SQL Server retourneert een foutbericht voor elk object dat de actie ALTER blokkeert:

  • Door de gebruiker gedefinieerde functies en weergaven die zijn gemaakt met SCHEMABINDING
  • Berekende kolommen
  • CHECK-beperkingen
  • Tabelwaardefuncties die tabellen retourneren met tekenkolommen met sorteringen die zijn overgenomen van de standaarddatabasesortering

Afhankelijkheidsinformatie voor niet-schemagebonden entiteiten wordt automatisch bijgewerkt wanneer de databasesortering wordt gewijzigd.

Als u de databasesortering wijzigt, worden er geen duplicaten gemaakt tussen systeemnamen voor de databaseobjecten. Als dubbele namen het resultaat zijn van de gewijzigde sortering, kunnen de volgende naamruimten het mislukken van een databasesorteringswijziging veroorzaken:

  • Objectnamen zoals een procedure, tabel, trigger of weergave
  • Schemanamen
  • Principals, zoals een groep, rol of gebruiker
  • Scalaire namen, zoals systeem- en door de gebruiker gedefinieerde typen
  • Namen van volledige tekstcatalogussen
  • Kolom- of parameternamen binnen een object
  • Indexnamen binnen een tabel

Dubbele namen als gevolg van de nieuwe sortering zorgen ervoor dat de wijzigingsactie mislukt en SQL Server retourneert een foutbericht waarin de naamruimte wordt opgegeven waarin het duplicaat is gevonden.

Databasegegevens weergeven

U kunt catalogusweergaven, systeemfuncties en door het systeem opgeslagen procedures gebruiken om informatie te retourneren over databases, bestanden en bestandsgroepen.

Machtigingen

Vereist ALTER machtiging voor de database.

Voorbeelden

Een. De naam van een database wijzigen

In het volgende voorbeeld wordt de naam van de AdventureWorks2022-database gewijzigd in Northwind.

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

B. De sortering van een database wijzigen

In het volgende voorbeeld wordt een database met de naam testdb gemaakt met de SQL_Latin1_General_CP1_CI_AS sortering en wordt vervolgens de sortering van de testdb-database gewijzigd in COLLATE French_CI_AI.

van toepassing op: SQL Server 2008 (10.0.x) en hoger.

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO

* SQL Database *  

 

Overzicht: SQL Database

Gebruik deze instructie in Azure SQL Database om een database te wijzigen. Gebruik deze instructie om de naam van een database te wijzigen, de editie en servicedoelstelling van de database te wijzigen, de database te koppelen aan of te verwijderen uit een elastische pool, databaseopties in te stellen, de database als secundaire database in een geo-replicatierelatie toe te voegen of te verwijderen en het compatibiliteitsniveau van de database in te stellen.

Vanwege de lengte is de ALTER DATABASE syntaxis gescheiden in de meerdere artikelen.

ALTER DATABASE
Het huidige artikel bevat de syntaxis en gerelateerde informatie voor het wijzigen van de naam en andere instellingen van een database.

ALTER DATABASE SET Options
Biedt de syntaxis en gerelateerde informatie voor het wijzigen van de kenmerken van een database met behulp van de SET-opties van ALTER DATABASE.

ALTER DATABASE Compatibility Level
Biedt de syntaxis en gerelateerde informatie voor de SET-opties van ALTER DATABASE die zijn gerelateerd aan databasecompatibiliteitsniveaus.

Syntaxis

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

}

Argumenten

database_name

Is de naam van de database die moet worden gewijzigd.

ACTUEEL
Hiermee wordt aangegeven dat de huidige database die wordt gebruikt, moet worden gewijzigd.

MODIFY NAME = new_database_name

Wijzigt de naam van de database met de naam die is opgegeven als new_database_name. In het volgende voorbeeld wordt de naam van een database db1 gewijzigd in db2:

ALTER DATABASE db1
    MODIFY Name = db2 ;

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

Hiermee wijzigt u de servicelaag van de database.

In het volgende voorbeeld wordt de editie gewijzigd in Premium:

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

Belangrijk

De editiewijziging mislukt als de eigenschap MAXSIZE voor de database is ingesteld op een waarde buiten het geldige bereik dat door die editie wordt ondersteund.

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

Hiermee wijzigt u de opslagredundantie van back-ups voor herstel naar een bepaald tijdstip en back-ups voor langetermijnretentie (indien geconfigureerd) van de database. De wijzigingen worden toegepast op alle toekomstige back-ups die worden gemaakt. Bestaande back-ups blijven de vorige instelling gebruiken.

Als u gegevenslocatie wilt afdwingen wanneer u een database maakt met behulp van T-SQL, gebruikt u LOCAL of ZONE als invoer voor de parameter BACKUP_STORAGE_REDUNDANCY.

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

Hiermee geeft u de maximale grootte van de database. De maximale grootte moet voldoen aan de geldige set waarden voor de eigenschap EDITION van de database. Als u de maximale grootte van de database wijzigt, kan de database-EDITIE worden gewijzigd.

Notitie

Het argument MAXSIZE is niet van toepassing op individuele databases in de Hyperscale-servicelaag. Databases met één Hyperscale-servicelaag groeien naar behoefte, tot 128 TB. De SQL Database-service voegt automatisch opslag toe. U hoeft geen maximale grootte in te stellen.

DTU-model

MAXSIZE- Basic- S0-S2- S3-S12- P1-P6- P11-P15-
100 MB Ja Ja Ja Ja Ja
250 MB Ja Ja Ja Ja Ja
500 MB Ja Ja Ja Ja Ja
1 GB Ja Ja Ja Ja Ja
2 GB Ja (D) Ja Ja Ja Ja
5 GB N.V.T Ja Ja Ja Ja
10 GB N.V.T Ja Ja Ja Ja
20 GB N.V.T Ja Ja Ja Ja
30 GB N.V.T Ja Ja Ja Ja
40 GB N.V.T Ja Ja Ja Ja
50 GB N.V.T Ja Ja Ja Ja
100 GB N.V.T Ja Ja Ja Ja
150 GB N.V.T Ja Ja Ja Ja
200 GB N.V.T Ja Ja Ja Ja
250 GB N.V.T Ja (D) Ja (D) Ja Ja
300 GB N.V.T Ja Ja Ja Ja
400 GB N.V.T Ja Ja Ja Ja
500 GB N.V.T Ja Ja Ja (D) Ja
750 GB N.V.T Ja Ja Ja Ja
1024 GB N.V.T Ja Ja Ja Ja (D)
Van 1024 GB tot 4096 GB in stappen van 256 GB 1 N.V.T N.V.T N.V.T N.V.T Ja

1 P11 en P15 staat MAXSIZE toe tot 4 TB, waarbij 1024 GB de standaardgrootte is. P11 en P15 kunnen zonder extra kosten maximaal 4 TB aan inbegrepen opslagruimte gebruiken. In de Premium-laag is MAXSIZE groter dan 1 TB momenteel beschikbaar in de volgende regio's: US - oost2, VS - west, US Gov Virginia, Europa - west, Duitsland - centraal, Azië - zuidoost, Japan - oost, Australië - oost, Canada - centraal en Canada - oost. Zie DTU-resourcelimietenvoor meer informatie over resourcebeperkingen voor het DTU-model.

De MAXSIZE-waarde voor het DTU-model, indien opgegeven, moet een geldige waarde zijn die wordt weergegeven in de vorige tabel voor de opgegeven servicelaag.

Raadpleeg de artikelen voor resourcelimieten voor individuele databases of resourcelimieten voor elastische poolsvoor limieten voor individuele databases, zoals maximale gegevensgrootte en tempdb grootte in het vCore-aankoopmodel.

Als er geen MAXSIZEwaarde is ingesteld bij het gebruik van het vCore-model, is de standaardwaarde 32 GB. Zie vCore-resourcelimietenvoor meer informatie over resourcebeperkingen voor het vCore-model.

De volgende regels zijn van toepassing op de argumenten MAXSIZE en EDITION:

  • Als EDITION is opgegeven, maar MAXSIZE niet is opgegeven, wordt de standaardwaarde voor de editie gebruikt. Is de EDITION bijvoorbeeld ingesteld op Standard en is maxSIZE niet opgegeven, dan wordt maxSIZE automatisch ingesteld op 250 MB.
  • Als MAXSIZE of EDITION niet is opgegeven, wordt de EDITIE ingesteld op Algemeen gebruik en is MAXSIZE ingesteld op 32 GB.

MODIFY (SERVICE_OBJECTIVE = <servicedoelstelling>)

Hiermee geeft u de rekengrootte en servicedoelstelling op.

SERVICE_OBJECTIVE

Hiermee geeft u de rekengrootte (ook wel serviceniveaudoelstelling of SLO genoemd) op.

  • Voor DTU-aankoopmodel: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15. Raadpleeg de resourcelimieten voor DTU-databases of resourcelimieten voor elastische DTU-pools om het aantal DTU's te vinden dat aan elke rekenkracht is toegewezen.
  • Voor het vCore-aankoopmodel kiest u de laag en geeft u het aantal vCores op uit een vooraf ingestelde lijst met waarden, waarbij het aantal vCores wordt n. Raadpleeg de resourcelimieten voor vCore-databases of resourcelimieten voor elastische vCore-pools.
    • Bijvoorbeeld:
    • GP_Gen5_8 voor algemeen gebruik, ingericht rekenproces, Standard-serie (Gen5), 8 vCores.
    • GP_S_Gen5_8 voor algemeen gebruik, serverloze berekening, Standard-serie (Gen5), 8 vCores.
    • HS_Gen5_8 voor Hyperscale, ingericht rekenproces, Standard-serie (Gen5), 8 vCores.
    • HS_S_Gen5_8 voor Hyperscale, serverloze compute, Standard-series (Gen5), 8 vCores.

In het volgende voorbeeld wordt bijvoorbeeld de servicedoelstelling van een Premium-laagdatabase in het DTU-aankoopmodel gewijzigd in P6:

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

In het volgende voorbeeld wordt bijvoorbeeld de servicedoelstelling van een ingerichte rekendatabase in het vCore-aankoopmodel gewijzigd in GP_Gen5_8:

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

DATABASE_NAME

Alleen voor Azure SQL Database Hyperscale. De databasenaam die wordt gemaakt. Alleen gebruikt door Azure SQL Database Hyperscale benoemde replica's, wanneer SECONDARY_TYPE = NAMED. Zie secundaire replica's van Hyperscalevoor meer informatie.

SECONDARY_TYPE

Alleen voor Azure SQL Database Hyperscale. GEO- een geo-replica opgeeft, geeft benoemde een benoemde replica op. De standaardwaarde is GEO-. Zie secundaire replica's van Hyperscalevoor meer informatie.

Zie voor beschrijvingen van servicedoelstellingen en meer informatie over de grootte, edities en de combinaties van servicedoelstellingen aankoopmodellen voor vCore en DTU-gebaseerde aankoopmodellen van Azure SQL Database vergelijken, DTU-resourcelimieten en vCore-resourcelimieten. Ondersteuning voor PRS-servicedoelstellingen is verwijderd.

Wanneer SERVICE_OBJECTIVE niet is opgegeven, wordt de secundaire database gemaakt op hetzelfde serviceniveau als de primaire database. Wanneer SERVICE_OBJECTIVE is opgegeven, wordt de secundaire database gemaakt op het opgegeven niveau. De opgegeven SERVICE_OBJECTIVE moet zich in dezelfde editie bevinden als de bron. U kunt bijvoorbeeld geen S0 opgeven als de editie premium is.

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

Als u een bestaande database wilt toevoegen aan een elastische pool, stelt u de SERVICE_OBJECTIVE van de database in op ELASTIC_POOL en geeft u de naam van de elastische pool op. U kunt deze optie ook gebruiken om de database te wijzigen in een andere elastische pool binnen dezelfde server. Zie Elastische pools u helpen bij het beheren en schalen van meerdere databases in Azure SQL Databasevoor meer informatie. Als u een database uit een elastische pool wilt verwijderen, gebruikt u ALTER DATABASE om de SERVICE_OBJECTIVE in te stellen op een rekenkracht van één database (servicedoelstelling).

Notitie

Databases in de Hyperscale-servicelaag kunnen niet worden toegevoegd aan een elastische pool.

SECUNDAIRE SERVER TOEVOEGEN <PARTNER_SERVER_NAME>

Hiermee maakt u een secundaire database voor geo-replicatie met dezelfde naam op een partnerserver, waardoor de lokale database in een primaire geo-replicatie wordt gemaakt en asynchroon gegevens worden gerepliceerd van de primaire naar de nieuwe secundaire database. Als er al een database met dezelfde naam op de secundaire database bestaat, mislukt de opdracht. De opdracht wordt uitgevoerd op de master-database op de server die als host fungeert voor de lokale database die de primaire database wordt.

Belangrijk

Standaard wordt de secundaire database gemaakt met dezelfde redundantie voor back-upopslag als die van de primaire of brondatabase. Het wijzigen van de redundantie van de back-upopslag tijdens het maken van de secundaire opslag wordt niet ondersteund via T-SQL.

WITH ALLOW_CONNECTIONS { ALL | NEE }

Wanneer ALLOW_CONNECTIONS niet is opgegeven, is deze standaard ingesteld op ALL. Als alles is ingesteld, is het een alleen-lezen database waarmee alle aanmeldingen met de juiste machtigingen verbinding kunnen maken.

ELASTIC_POOL (naam = <elastic_pool_name>)

Wanneer ELASTIC_POOL niet is opgegeven, wordt de secundaire database niet gemaakt in een elastische pool. Wanneer ELASTIC_POOL is opgegeven, wordt de secundaire database gemaakt in de opgegeven pool.

Belangrijk

De gebruiker die de opdracht ADD SECONDARY uitvoert, moet DBManager zijn op de primaire server, db_owner lidmaatschap hebben van de lokale database en DBManager op de secundaire server. Het IP-adres van de client moet worden toegevoegd aan de lijst met toegestane clients onder firewallregels voor zowel de primaire als de secundaire servers. In het geval van verschillende CLIENT-IP-adressen moet hetzelfde client-IP-adres dat op de primaire server is toegevoegd, ook worden toegevoegd aan de secundaire server. Dit is een vereiste stap voordat u de opdracht ADD SECONDARY uitvoert om geo-replicatie te initiëren.

SECUNDAIR VERWIJDEREN OP SERVER <PARTNER_SERVER_NAME>

Hiermee verwijdert u de opgegeven secundaire database met geo-replicatie op de opgegeven server. De opdracht wordt uitgevoerd op de master-database op de server die als host fungeert voor de primaire database.

Belangrijk

De gebruiker die de opdracht REMOVE SECONDARY uitvoert, moet DBManager op de primaire server zijn.

FAILOVER

Bevordert de secundaire database in geo-replicatierelatie waarop de opdracht wordt uitgevoerd om de primaire te worden en de huidige primaire te degraderen om de nieuwe secundaire te worden. Als onderdeel van dit proces wordt de geo-replicatiemodus tijdelijk overgeschakeld van de asynchrone modus naar de synchrone modus. Tijdens het failoverproces:

  1. De primaire stop met het nemen van nieuwe transacties.
  2. Alle openstaande transacties worden naar de secundaire gespoeld.
  3. De secundaire wordt de primaire en begint asynchrone geo-replicatie met de oude primaire/de nieuwe secundaire.

Deze reeks zorgt ervoor dat er geen gegevensverlies optreedt. De periode waarin beide databases niet beschikbaar zijn, bevindt zich in de volgorde van 0-25 seconden terwijl de rollen worden overgeschakeld. De totale bewerking duurt niet langer dan ongeveer één minuut. Als de primaire database niet beschikbaar is wanneer deze opdracht wordt uitgegeven, mislukt de opdracht met een foutbericht dat aangeeft dat de primaire database niet beschikbaar is. Als het failoverproces niet is voltooid en vastloopt, kunt u de opdracht voor geforceerde failover gebruiken en gegevensverlies accepteren. Als u de verloren gegevens wilt herstellen, roept u devops (CSS) aan om de verloren gegevens te herstellen.

Belangrijk

De gebruiker die de FAILOVER-opdracht uitvoert, moet DBManager zijn op zowel de primaire server als de secundaire server.

FORCE_FAILOVER_ALLOW_DATA_LOSS

Bevordert de secundaire database in geo-replicatierelatie waarop de opdracht wordt uitgevoerd om de primaire te worden en de huidige primaire te degraderen om de nieuwe secundaire te worden. Gebruik deze opdracht alleen als de huidige primaire versie niet meer beschikbaar is. Het is alleen ontworpen voor herstel na noodgevallen, wanneer het herstellen van de beschikbaarheid essentieel is en sommige gegevensverlies acceptabel is.

Tijdens een geforceerde failover:

  1. De opgegeven secundaire database wordt onmiddellijk de primaire database en begint met het accepteren van nieuwe transacties.
  2. Wanneer de oorspronkelijke primaire versie opnieuw verbinding kan maken met de nieuwe primaire, wordt er een incrementele back-up gemaakt op de oorspronkelijke primaire en wordt de oorspronkelijke primaire een nieuwe secundaire.
  3. Als de gebruiker gegevens van deze incrementele back-up op de oude primaire computer wilt herstellen, schakelt de gebruiker devops/CSS in.
  4. Als er extra secundaire bestanden zijn, worden ze automatisch opnieuw geconfigureerd om secundaire bestanden van de nieuwe primaire database te worden. Dit proces is asynchroon en er kan een vertraging optreden totdat dit proces is voltooid. Totdat de herconfiguratie is voltooid, blijven de secundaire secundaire bestanden van de oude primaire.

Belangrijk

De gebruiker die de opdracht FORCE_FAILOVER_ALLOW_DATA_LOSS uitvoert, moet behoren tot de dbmanager-rol op zowel de primaire server als de secundaire server.

Opmerkingen

Als u een database wilt verwijderen, gebruikt u DROP DATABASE. Als u de grootte van een database wilt verkleinen, gebruikt u DBCC SHRINKDATABASE.

De instructie ALTER DATABASE moet worden uitgevoerd in de modus voor automatisch doorvoeren (de standaardmodus voor transactiebeheer) en is niet toegestaan in een expliciete of impliciete transactie.

Als u de plancache wist, wordt een hercompilatie van alle volgende uitvoeringsplannen veroorzaakt. Dit kan een plotselinge, tijdelijke afname van de queryprestaties veroorzaken. Voor elke gewiste cacheopslag in de plancache bevat het SQL Server-foutenlogboek het volgende informatieve bericht: 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. Dit bericht wordt elke vijf minuten geregistreerd zolang de cache binnen dat tijdsinterval wordt leeggemaakt.

De procedurecache wordt ook leeggemaakt in het volgende scenario: u voert verschillende query's uit op een database met standaardopties. Vervolgens wordt de database verwijderd.

Databasegegevens weergeven

U kunt catalogusweergaven, systeemfuncties en door het systeem opgeslagen procedures gebruiken om informatie te retourneren over databases, bestanden en bestandsgroepen.

Machtigingen

Als u een database wilt wijzigen, moet een aanmelding de aanmeldgegevens van de serverbeheerder zijn (gemaakt toen de logische Azure SQL Database-server is ingericht), de Microsoft Entra-beheerder van de server, een lid van de databaserol dbmanager in master, een lid van de db_owner-databaserol in de huidige database of dbo van de database. Microsoft Entra ID is (voorheen Azure Active Directory).

Als u databases wilt schalen via T-SQL, zijn ALTER DATABASE-machtigingen nodig. Als u databases wilt schalen via de Azure-portal, PowerShell, Azure CLI of REST API, zijn Azure RBAC-machtigingen nodig, met name de rol Inzender, SQL DB-inzender of De rol Inzender van SQL Server Azure RBAC. Ga naar ingebouwde Azure-rollenvoor meer informatie.

Voorbeelden

Een. Controleer de editieopties en wijzig deze

Hiermee stelt u een editie en maximale grootte in voor database-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. Een database verplaatsen naar een andere elastische pool

Hiermee verplaatst u een bestaande database naar een pool met de naam pool1:

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

C. Een Geo-Replication Secundair toevoegen

Hiermee maakt u een leesbare secundaire database db1 op de server secondaryserver van de db1 op de lokale server.

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

D. Een Geo-Replication secundair verwijderen

Hiermee verwijdert u de secundaire database db1 op de server secondaryserver.

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver;

E. Failover naar een Geo-Replication secundair

Bevordert een secundaire database db1 op server secondaryserver om de nieuwe primaire database te worden wanneer deze wordt uitgevoerd op de server secondaryserver.

ALTER DATABASE db1 FAILOVER;

Notitie

Zie richtlijnen voor herstel na noodgevallen : Azure SQL Database en de controlelijst voor hoge beschikbaarheid en herstel na noodgevallen van Azure SQL Databasevoor Azure SQL Database.

F. Failover afdwingen naar een Geo-Replication secundair met gegevensverlies

Hiermee wordt afgedwongen dat een secundaire database db1 op de server secondaryserver de nieuwe primaire database wordt wanneer deze wordt uitgevoerd op server secondaryserver, in het geval dat de primaire server niet meer beschikbaar is. Deze optie kan gegevensverlies veroorzaken.

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS;

G. Een individuele database bijwerken naar servicelaag S0 (Standard-editie, prestatieniveau 0)

Hiermee wordt één database bijgewerkt naar de Standard-editie (servicelaag) met een rekenkracht (servicedoelstelling) van S0 en een maximale grootte van 250 GB.

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

H. De redundantie van back-upopslag van een database bijwerken

Hiermee wordt de redundantie van de back-upopslag van een database bijgewerkt naar zone-redundant. Alle toekomstige back-ups van deze database maken gebruik van de nieuwe instelling. Dit omvat herstelback-ups naar een bepaald tijdstip en langetermijnretentieback-ups (indien geconfigureerd).

ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE';

* SQL Managed Instance *  

 

Overzicht: Azure SQL Managed Instance

Gebruik deze instructie in Azure SQL Managed Instance om databaseopties in te stellen.

Vanwege de lengte is de ALTER DATABASE syntaxis gescheiden in de meerdere artikelen.

Artikel Beschrijving
ALTER DATABASE
Het huidige artikel bevat de syntaxis en gerelateerde informatie voor het instellen van opties voor bestanden en bestandsgroepen, voor het instellen van databaseopties en voor het instellen van het compatibiliteitsniveau van de database.
ALTER DATABASE File and Filegroup Options
Biedt de syntaxis en gerelateerde informatie voor het toevoegen en verwijderen van bestanden en bestandsgroepen uit een database, en voor het wijzigen van de kenmerken van de bestanden en bestandsgroepen.
ALTER DATABASE SET Options
Biedt de syntaxis en gerelateerde informatie voor het wijzigen van de kenmerken van een database met behulp van de SET-opties van ALTER DATABASE.
ALTER DATABASE Compatibility Level
Biedt de syntaxis en gerelateerde informatie voor de SET-opties van ALTER DATABASE die zijn gerelateerd aan databasecompatibiliteitsniveaus.

Syntaxis

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

}  

Argumenten

database_name

Is de naam van de database die moet worden gewijzigd.

ACTUEEL
Hiermee wordt aangegeven dat de huidige database die wordt gebruikt, moet worden gewijzigd.

Opmerkingen

  • Als u een database wilt verwijderen, gebruikt u DROP DATABASE.

  • Als u de grootte van een database wilt verkleinen, gebruikt u DBCC SHRINKDATABASE.

  • De instructie ALTER DATABASE moet worden uitgevoerd in de modus voor automatisch doorvoeren (de standaardmodus voor transactiebeheer) en is niet toegestaan in een expliciete of impliciete transactie.

  • De plancache voor azure SQL Managed Instance wordt gewist door een van de volgende opties in te stellen.

    • SORTEREN

    • STANDAARDBESTANDSGROEP WIJZIGEN

    • FILEGROUP-READ_ONLY WIJZIGEN

    • FILEGROUP-READ_WRITE WIJZIGEN

    • NAAM WIJZIGEN

      Als u de plancache wist, wordt een hercompilatie van alle volgende uitvoeringsplannen veroorzaakt. Dit kan een plotselinge, tijdelijke afname van de queryprestaties veroorzaken. Voor elke gewiste cacheopslag in de plancache bevat het SQL Server-foutenlogboek het volgende informatieve bericht: 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. Dit bericht wordt elke vijf minuten geregistreerd zolang de cache binnen dat tijdsinterval wordt leeggemaakt. De plancache wordt ook leeggemaakt wanneer meerdere query's worden uitgevoerd op een database met standaardopties. Vervolgens wordt de database verwijderd.

  • Voor sommige ALTER DATABASE-instructies is exclusieve vergrendeling van een database vereist. Daarom kunnen ze mislukken wanneer een ander actief proces een vergrendeling op de database vasthoudt. Fout die wordt gerapporteerd in een geval zoals dit is Msg 5061, Level 16, State 1, Line 38 met bericht ALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later. Dit is meestal een tijdelijke fout en om dit op te lossen, nadat alle vergrendelingen in de database zijn vrijgegeven, voert u de ALTER DATABASE-instructie opnieuw uit die is mislukt. Systeemweergave sys.dm_tran_locks informatie bevat over actieve vergrendelingen. Als u wilt controleren of er gedeelde of exclusieve vergrendelingen voor een database zijn, gebruikt u de volgende query.

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

Databasegegevens weergeven

U kunt catalogusweergaven, systeemfuncties en door het systeem opgeslagen procedures gebruiken om informatie te retourneren over databases, bestanden en bestandsgroepen.

Machtigingen

Alleen de principalaanmelding op serverniveau (gemaakt door het inrichtingsproces) of leden van de dbcreator-databaserol kunnen een database wijzigen.

Belangrijk

De eigenaar van de database kan de database alleen wijzigen als deze lid is van de rol dbcreator.

Voorbeelden

In de volgende voorbeelden ziet u hoe u automatische afstemming instelt en hoe u een bestand toevoegt aan een database in Azure SQL Managed Instance.

ALTER DATABASE WideWorldImporters
  SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);

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

* Azure Synapse
Analyse *
 

 

Overzicht: Azure Synapse Analytics

In Azure Synapse wijzigt ALTER DATABASE bepaalde configuratieopties van een toegewezen SQL-pool.

Vanwege de lengte is de ALTER DATABASE syntaxis gescheiden in de meerdere artikelen.

ALTER DATABASE SET options bevat de syntaxis en gerelateerde informatie voor het wijzigen van de kenmerken van een database met behulp van de SET-opties van ALTER DATABASE.

Syntaxis

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

Argumenten

database_name

Hiermee geeft u de naam op van de database die moet worden gewijzigd.

NAAM WIJZIGEN = new_database_name

Wijzigt de naam van de database met de naam die is opgegeven als new_database_name.

De optie NAAM WIJZIGEN heeft enkele ondersteuningsbeperkingen in Azure Synapse:

  • Niet ondersteund met serverloze Azure Synapse-pools
  • Niet ondersteund met toegewezen SQL-pools die zijn gemaakt in uw Azure Synapse-werkruimte
  • Ondersteund met toegewezen SQL-pools (voorheen SQL DW) die zijn gemaakt via de Azure Portal, inclusief die met een verbonden werkruimte

MAXSIZE

De standaardwaarde is 245.760 GB (240 TB).

van toepassing op: geoptimaliseerd voor Compute Gen1

De maximaal toegestane grootte voor de database. De database kan niet groter worden dan MAXSIZE.

van toepassing op: geoptimaliseerd voor Compute Gen2

De maximale toegestane grootte voor rijopslaggegevens in de database. Gegevens die zijn opgeslagen in rijopslagtabellen, de deltastore van een columnstore-index of een niet-geclusterde index in een geclusterde columnstore-index kunnen niet groter worden dan MAXSIZE. Gegevens die zijn gecomprimeerd in de columnstore-indeling, hebben geen groottelimiet en worden niet beperkt door MAXSIZE.

SERVICE_OBJECTIVE

Hiermee geeft u de rekengrootte (servicedoelstelling) op. Zie DWU's (Data Warehouse Units)voor meer informatie over servicedoelstellingen voor Azure Synapse.

Machtigingen

Hiervoor zijn deze machtigingen vereist:

  • Principal-aanmelding op serverniveau (de aanmelding die is gemaakt door het inrichtingsproces) of
  • Lid van de dbmanager-databaserol.

De eigenaar van de database kan de database alleen wijzigen als de eigenaar lid is van de dbmanager rol.

Opmerkingen

De huidige database moet een andere database zijn dan de database die u wijzigt. ALTER moet daarom worden uitgevoerd terwijl deze is verbonden met de master-database.

COMPATIBILITY_LEVEL in SQL Analytics is standaard ingesteld op 130 en kan niet worden gewijzigd. Zie ALTER DATABASE-compatibiliteitsniveauvoor meer informatie.

Notitie

COMPATIBILITY_LEVEL geldt alleen voor ingerichte resources (pools).

Beperkingen

Als u ALTER DATABASEwilt uitvoeren, moet de database online zijn en kan deze niet worden onderbroken.

De instructie ALTER DATABASE moet worden uitgevoerd in de modus voor automatisch doorvoeren. Dit is de standaardmodus voor transactiebeheer. Dit is ingesteld in de verbindingsinstellingen.

De ALTER DATABASE-instructie kan geen deel uitmaken van een door de gebruiker gedefinieerde transactie.

U kunt de databasesortering niet wijzigen.

Voorbeelden

Voordat u deze voorbeelden uitvoert, moet u ervoor zorgen dat de database die u wijzigt niet de huidige database is. De huidige database moet een andere database zijn dan de database die u wijzigt. ALTER moet daarom worden uitgevoerd terwijl deze is verbonden met de master-database.

Een. De naam van de database wijzigen

ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;

B. Maximale grootte voor de database wijzigen

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );

C. De rekenkracht (servicedoelstelling) wijzigen

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

D. De maximale grootte en de rekengrootte wijzigen (servicedoelstelling)

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

* Analyse
Platform System (PDW) *
 

 

Overzicht: Analytics Platform System

In Analytics Platform System (PDW) wijzigt ALTER DATABASE de maximale databasegrootteopties voor gerepliceerde tabellen, gedistribueerde tabellen en het transactielogboek. Gebruik deze instructie om toewijzingen van schijfruimte voor een database te beheren naarmate deze groter of kleiner wordt. In dit artikel worden ook syntaxis beschreven met betrekking tot het instellen van databaseopties in Analytics Platform System (PDW).

Syntaxis

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

Argumenten

database_name

De naam van de database die moet worden gewijzigd. Als u een lijst met databases op het apparaat wilt weergeven, gebruikt u sys.databases.

AUTOGROW = { AAN | UIT }

Hiermee werkt u de optie AUTOGROW bij. Wanneer AUTOGROW is ingeschakeld, verhoogt Analytics Platform System (PDW) automatisch de toegewezen ruimte voor gerepliceerde tabellen, gedistribueerde tabellen en het transactielogboek indien nodig om te voldoen aan de groei van de opslagvereisten. Wanneer AUTOGROW is UITGESCHAKELD, retourneert Analytics Platform System (PDW) een fout als gerepliceerde tabellen, gedistribueerde tabellen of het transactielogboek de maximale grootte-instelling overschrijdt.

REPLICATED_SIZE = grootte [GB]

Hiermee geeft u het nieuwe maximum aantal gigabytes per rekenknooppunt op voor het opslaan van alle gerepliceerde tabellen in de database die worden gewijzigd. Als u van plan bent om opslagruimte voor apparaten te gebruiken, moet u REPLICATED_SIZE vermenigvuldigen met het aantal rekenknooppunten in het apparaat.

DISTRIBUTED_SIZE = grootte [GB]

Hiermee geeft u het nieuwe maximum aantal gigabytes per database op voor het opslaan van alle gedistribueerde tabellen in de database die worden gewijzigd. De grootte wordt verdeeld over alle rekenknooppunten in het apparaat.

LOG_SIZE = grootte [GB]

Hiermee geeft u het nieuwe maximum gigabyte per database op voor het opslaan van alle transactielogboeken in de database die worden gewijzigd. De grootte wordt verdeeld over alle rekenknooppunten in het apparaat.

VERSLEUTELING { AAN | UIT }

Hiermee stelt u in dat de database moet worden versleuteld (AAN) of niet versleuteld (UIT). Versleuteling kan alleen worden geconfigureerd voor PDW (Analytics Platform System) wanneer sp_pdw_database_encryption is ingesteld op 1. Er moet een databaseversleutelingssleutel worden gemaakt voordat transparante gegevensversleuteling kan worden geconfigureerd. Zie TDE (Transparent Data Encryption)voor meer informatie over databaseversleuteling.

SET AUTO_CREATE_STATISTICS { ON | UIT }

Wanneer de optie voor automatisch maken van statistieken, AUTO_CREATE_STATISTICS, is ingeschakeld, maakt de queryoptimalisatie statistieken voor afzonderlijke kolommen in het querypredicaat, indien nodig, om de kardinaliteitschattingen voor het queryplan te verbeteren. Deze statistieken met één kolom worden gemaakt op kolommen die nog geen histogram hebben in een bestaand statistiekenobject.

De standaardwaarde is INGESCHAKELD voor nieuwe databases die zijn gemaakt na een upgrade naar AU7. De standaardwaarde is UIT voor databases die vóór de upgrade zijn gemaakt.

Zie Statistieken voor meer informatie over statistieken

SET AUTO_UPDATE_STATISTICS { ON | UIT }

Wanneer de optie statistieken voor automatische updates, AUTO_UPDATE_STATISTICS, is ingeschakeld, bepaalt de optimalisatiefunctie voor query's wanneer statistieken verouderd zijn en deze vervolgens bijwerkt wanneer ze door een query worden gebruikt. Statistieken worden verouderd nadat bewerkingen de gegevensdistributie in de tabel of geïndexeerde weergave hebben ingevoegd, bijgewerkt, verwijderd of samengevoegd. De optimalisatiefunctie voor query's bepaalt wanneer statistieken verouderd kunnen zijn door het aantal gegevenswijzigingen te tellen sinds de laatste update van de statistieken en het aantal wijzigingen aan een drempelwaarde te vergelijken. De drempelwaarde is gebaseerd op het aantal rijen in de tabel of geïndexeerde weergave.

De standaardwaarde is INGESCHAKELD voor nieuwe databases die zijn gemaakt na een upgrade naar AU7. De standaardwaarde is UIT voor databases die vóór de upgrade zijn gemaakt.

Zie Statistiekenvoor meer informatie over statistieken.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | UIT }

De optie voor het bijwerken van asynchrone statistieken, AUTO_UPDATE_STATISTICS_ASYNC, bepaalt of de queryoptimalisatie synchrone of asynchrone statistiekenupdates gebruikt. De optie AUTO_UPDATE_STATISTICS_ASYNC is van toepassing op statistiekenobjecten die zijn gemaakt voor indexen, enkele kolommen in querypredicaten en statistieken die zijn gemaakt met de CREATE STATISTICS-instructie.

De standaardwaarde is INGESCHAKELD voor nieuwe databases die zijn gemaakt na een upgrade naar AU7. De standaardwaarde is UIT voor databases die vóór de upgrade zijn gemaakt.

Zie Statistiekenvoor meer informatie over statistieken.

Machtigingen

Vereist de ALTER machtiging voor de database.

Foutberichten

Als automatische statistieken is uitgeschakeld en u probeert de instellingen voor statistieken te wijzigen, voert PDW de fout This option isn't supported in PDWuit. De systeembeheerder kan automatische statistieken inschakelen door de functieschakelaar in te schakelen AutoStatsEnabled.

Opmerkingen

De waarden voor REPLICATED_SIZE, DISTRIBUTED_SIZEen LOG_SIZE kunnen groter zijn dan, gelijk aan of kleiner zijn dan de huidige waarden voor de database.

Beperkingen

Groei- en verkleinbewerkingen zijn bij benadering. De resulterende werkelijke grootten kunnen variëren van de grootteparameters.

In Analytics Platform System (PDW) wordt de ALTER DATABASE instructie niet uitgevoerd als een atomische bewerking. Als de instructie wordt afgebroken tijdens de uitvoering, blijven wijzigingen die al zijn opgetreden, behouden.

De instellingen voor statistieken werken alleen als de beheerder automatische statistieken heeft ingeschakeld. Als u een beheerder bent, gebruikt u de functieswitch AutoStatsEnabled om automatische statistieken in of uit te schakelen.

Vergrendelingsgedrag

Neemt een gedeelde vergrendeling op het DATABASE-object. U kunt een database die door een andere gebruiker wordt gebruikt, niet wijzigen voor lezen of schrijven. Dit omvat sessies die een USE-instructie voor de database hebben uitgegeven.

Voorstelling

Het verkleinen van een database kan een grote hoeveelheid tijd en systeemresources duren, afhankelijk van de grootte van de werkelijke gegevens in de database en de hoeveelheid fragmentatie op schijf. Het verkleinen van een database kan bijvoorbeeld enkele uren of langer duren.

Versleutelingsvoortgang bepalen

Gebruik de volgende query om de voortgang van transparante gegevensversleuteling van de database te bepalen als percentage:

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

Zie TDE (Transparent Data Encryption)voor een uitgebreid voorbeeld van alle stappen voor het implementeren van TDE.

Voorbeelden: Analytics Platform System (PDW)

Een. De instelling AUTOGROW wijzigen

Stel AUTOGROW in op AAN voor database CustomerSales.

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. De maximale opslag voor gerepliceerde tabellen wijzigen

In het volgende voorbeeld wordt de limiet voor gerepliceerde tabelopslag ingesteld op 1 GB voor de database CustomerSales. Dit is de opslaglimiet per rekenknooppunt.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. De maximale opslag voor gedistribueerde tabellen wijzigen

In het volgende voorbeeld wordt de limiet voor gedistribueerde tabelopslag ingesteld op 1000 GB (één terabyte) voor de database CustomerSales. Dit is de gecombineerde opslaglimiet op het apparaat voor alle rekenknooppunten, niet de opslaglimiet per rekenknooppunt.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. De maximale opslag voor het transactielogboek wijzigen

In het volgende voorbeeld wordt de database bijgewerkt CustomerSales een maximale grootte van het SQL Server-transactielogboek van 10 GB voor het apparaat hebben.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Controleren op huidige statistiekenwaarden

De volgende query retourneert de huidige statistiekenwaarden voor alle databases. De waarde 1 betekent dat de functie is ingeschakeld en een 0 betekent dat de functie is uitgeschakeld.

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

F. Statistieken voor automatisch maken en automatisch bijwerken inschakelen voor een database

Gebruik de volgende instructie om statistieken automatisch en asynchroon te maken en bij te werken voor database CustomerSales. Hiermee worden statistieken met één kolom gemaakt en bijgewerkt, indien nodig om queryplannen van hoge kwaliteit te maken.

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

Overzicht: Microsoft Fabric

Microsoft Fabric-

In Microsoft Fabric Warehouse wijzigt deze instructie een magazijn.

Vanwege de lengte is de ALTER DATABASE syntaxis gescheiden in de meerdere artikelen.

Artikel Beschrijving
ALTER DATABASE Het huidige artikel bevat de syntaxis en gerelateerde informatie voor het wijzigen van de naam en de sortering van een database.
OPTIES VOOR ALTER DATABASE SET Biedt de syntaxis en gerelateerde informatie voor het wijzigen van de kenmerken van een database met behulp van de SET-opties van ALTER DATABASE.

Opmerkingen

Op dit moment zijn het onderbreken van het publiceren van Delta Lake-logboeken en het uitschakelen van V-ordergedrag in een magazijn, de enige toepassingen voor ALTER DATABASE ... SET in Microsoft Fabric. Zie ALTER DATABASE SET options.