ALTER DATABASE (Transact-SQL) - Analytics Platform System (PDW)

Gilt für:Analytics Platform System (PDW)

Im Analytics Platform System (PDW) ALTER DATABASE werden die maximalen Datenbankgrößenoptionen für replizierte Tabellen, verteilte Tabellen und das Transaktionsprotokoll modifiziert. Verwenden Sie diese Anweisung, um die Speicherplatzzuordnungen für eine Datenbank zu verwalten, wenn sich diese vergrößert oder verkleinert. In diesem Artikel wird auch die Syntax im Zusammenhang mit dem Festlegen von Datenbankoptionen in Analytics Platform System (PDW) beschrieben.

Transact-SQL-Syntaxkonventionen

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 }

Arguments

database_name

Der Name der Datenbank, die geändert werden soll. Um eine Liste von Datenbanken auf dem Gerät anzuzeigen, verwenden Sie sys.databases.

AUTOGROW = { ON | FALSCH }

Aktualisiert die Option AUTOGROW. Wenn AUTOGROW ON ist, erhöht Analytics-Plattformsystem (PDW) automatisch den zugeordneten Speicherplatz für replizierte Tabellen und verteilte Tabellen sowie das Transaktionsprotokoll nach Bedarf, um den gesteigerten Speicheranforderungen gerecht zu werden. Wenn AUTOGROW OFF ist, gibt Analytics-Plattformsystem (PDW) einen Fehler zurück, wenn replizierte Tabellen, verteilte Tabellen oder das Transaktionsprotokoll die Einstellung für die maximale Größe überschreiten.

REPLICATED_SIZE = Größe [GB]

Gibt die neue maximale Anzahl von Gigabyte pro Computeknoten für die Speicherung aller replizierten Tabellen in der Datenbank an, die geändert werden. Wenn Sie den Speicherplatz der Appliance planen, müssen Sie REPLICATED_SIZE mit der Anzahl der Computeknoten in der Appliance multiplizieren.

DISTRIBUTED_SIZE = Größe [GB]

Gibt die neue maximale Anzahl von Gigabyte pro Datenbank für die Speicherung aller verteilten Tabellen in der Datenbank an, die geändert werden. Die Größe wird auf alle Computeknoten der Appliance verteilt.

LOG_SIZE = Größe [GB]

Gibt die neue maximale Anzahl von Gigabyte pro Datenbank für die Speicherung aller Transaktionsprotokolle in der Datenbank an, die geändert werden. Die Größe wird auf alle Computeknoten der Appliance verteilt.

VERSCHLÜSSELUNG { ON | OFF }

Legt fest, ob die Datenbank verschlüsselt (ON) oder nicht verschlüsselt (OFF) werden soll. Die Verschlüsselung kann nur für Analytics-Plattformsystem (PDW) konfiguriert werden, wenn sp_pdw_database_encryption auf 1 festgelegt wurde. Ein Datenbank-Verschlüsselungsschlüssel muss erstellt werden, bevor Transparent Data Encryption konfiguriert werden kann. Weitere Informationen zur Datenbankverschlüsselung finden Sie unter Transparent data encryption (TDE).For more information about database encryption, see Transparent data encryption (TDE).

SET AUTO_CREATE_STATISTICS { ON | FALSCH }

Ist die Option AUTO_CREATE_STATISTICS zum automatischen Erstellen von Statistiken aktiviert, erstellt der Abfrageoptimierer nach Bedarf Statistiken für einzelne Spalten im Abfrageprädikat, um Kardinalitätsschätzungen für den Abfrageplan zu verbessern. Diese einzelspaltigen Statistiken werden für Spalten erstellt, die noch kein Histogramm in einem vorhandenen Statistikobjekt aufweisen.

Bei neuen Datenbanken, die nach dem Upgrade auf AU7 erstellt wurden, ist die Option standardmäßig auf ON festgelegt. Bei Datenbanken, die vor dem Upgrade erstellt wurden, ist die Option standardmäßig auf OFF festgelegt.

Weitere Informationen zu Statistiken finden Sie unter Statistik

SET AUTO_UPDATE_STATISTICS { ON | FALSCH }

Wenn die Option für automatische Aktualisierungsstatistiken, AUTO_UPDATE_STATISTICS, aktiviert ist, bestimmt der Abfrageoptimierer, wann Statistiken möglicherweise veraltet sind, und aktualisiert sie dann, wenn sie von einer Abfrage verwendet werden. Statistiken sind veraltet, wenn die Datenverteilung in der Tabelle oder indizierten Sicht durch die Vorgänge INSERT, UPDATE, DELETE oder MERGE geändert wurde. Der Abfrageoptimierer stellt fest, wann Statistiken veraltet sein könnten, indem er die Anzahl der Datenänderungen seit des letzten Statistikupdates ermittelt und sie mit einem Schwellenwert vergleicht. Der Schwellenwert basiert auf der Anzahl der Zeilen in der Tabelle oder indizierten Ansicht.

Bei neuen Datenbanken, die nach dem Upgrade auf AU7 erstellt wurden, ist die Option standardmäßig auf ON festgelegt. Bei Datenbanken, die vor dem Upgrade erstellt wurden, ist die Option standardmäßig auf OFF festgelegt.

Weitere Informationen zu Statistiken finden Sie unter Statistik.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | FALSCH }

Mit der AUTO_UPDATE_STATISTICS_ASYNC-Option für die asynchrone Statistikaktualisierung wird festgelegt, ob der Abfrageoptimierer die synchrone oder asynchrone Statistikaktualisierung verwendet. Die AUTO_UPDATE_STATISTICS_ASYNC-Option gilt für Statistikobjekte, die für Indizes, einzelne Spalten in Abfrageprädikaten und mit der CREATE STATISTICS -Anweisung generierte Statistiken erstellt wurden.

Bei neuen Datenbanken, die nach dem Upgrade auf AU7 erstellt wurden, ist die Option standardmäßig auf ON festgelegt. Bei Datenbanken, die vor dem Upgrade erstellt wurden, ist die Option standardmäßig auf OFF festgelegt.

Weitere Informationen zu Statistiken finden Sie unter Statistik.

Erlaubnisse

Erfordert die ALTER Berechtigung für die Datenbank.

Fehlermeldungen

Wenn „auto-stats“ deaktiviert ist und Sie versuchen, die Statistikeinstellungen zu ändern, gibt PDW die Fehlermeldung This option isn't supported in PDW aus. Der Systemadministrator kann „auto-stats“ aktivieren, indem er den Featureschalter AutoStatsEnabled aktiviert.

Bemerkungen

Die Werte für REPLICATED_SIZE, DISTRIBUTED_SIZE und LOG_SIZE können größer, gleich oder kleiner als die aktuellen Werte für die Datenbank sein.

Limitations

Vergrößerungs- und Verkleinerungsvorgänge sind ungenau. Die resultierenden tatsächlichen Größen können von den Größenparametern abweichen.

Das Analytics Platform System (PDW) führt die ALTER DATABASE Anweisung nicht als Atomoperation aus. Wenn die Anweisung während der Ausführung abgebrochen wird, bleiben Änderungen, die bereits durchgeführt wurden, erhalten.

Die Statistikeinstellungen funktionieren nur, wenn der Administrator automatische Statistiken aktiviert hat. Wenn Sie ein Administrator sind, verwenden Sie den Featureswitch AutoStatsEnabled , um die automatische Statistik zu aktivieren oder zu deaktivieren.

Sperrverhalten

Eine gemeinsame Sperre für das DATABASE-Objekt wird zugelassen. Sie können keine Datenbank ändern, die von einem anderen Benutzer zum Lesen oder Schreiben verwendet wird. Dies schließt auch Sitzungen ein, die eine USE-Anweisung für die Datenbank ausgeführt haben.

Performance

Das Verkleinern einer Datenbank kann, abhängig von der Größe der tatsächlichen Daten innerhalb der Datenbank und der Menge der Fragmentierung auf dem Datenträger, viel Zeit und viele Systemressourcen in Anspruch nehmen. Das Verkleinern einer Datenbank könnte beispielsweise mehrere Stunden oder noch länger dauern.

Bestimmen des Verschlüsselungsfortschritts

Verwenden Sie die folgende Abfrage, um den Fortschritt der transparenten Datenverschlüsselung für die Datenbank als Prozentsatz zu bestimmen:

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

Ein umfassendes Beispiel zur Veranschaulichung aller Schritte bei der Implementierung von TDE finden Sie unter Transparent data encryption (TDE).

Beispiele: Analytics-Plattformsystem (PDW)

A. Ändern der AUTOGROW-Einstellung

Legen Sie AUTOGROW für die Datenbank CustomerSales auf ON fest.

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Ändern des maximalen Speicherplatzes für replizierte Tabellen

Im folgenden Beispiel wird die Speicherbegrenzung für replizierte Tabellen für die Datenbank CustomerSales auf 1 GB festgelegt. Dabei handelt es sich um die Speicherbegrenzung pro Computeknoten.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Ändern des maximalen Speicherplatzes für verteilte Tabellen

Im folgenden Beispiel wird der Speichergrenzwert für verteilte Tabellen auf 1.000 GB (1 Terabyte) für die Datenbank CustomerSalesfestgelegt. Dabei handelt es sich um die gemeinsame Speicherbegrenzung für alle Computeknoten der Appliance und nicht um die Speicherbegrenzung pro Computeknoten.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Ändern des maximalen Speicherplatzes für das Transaktionsprotokoll

Im folgenden Beispiel wird die Datenbank CustomerSales so aktualisiert, dass die maximale Größe des SQL Server-Transaktionsprotokolls für die Appliance 10 GB beträgt.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Überprüfung auf aktuelle Statistikwerte

Die folgende Abfrage gibt die aktuellen Statistikwerte für sämtliche Datenbanken zurück. Der Wert 1 bedeutet, dass das Feature aktiviert ist, und eine 0 bedeutet, dass das Feature deaktiviert ist.

SELECT [name],
    is_auto_create_stats_on,
    is_auto_update_stats_on,
    is_auto_update_stats_async_on
FROM sys.databases;

F. Aktivieren der automatischen Erstellung und des automatischen Updates von Statistiken für eine Datenbank

Mit der folgenden Anweisung können Sie Statistiken zur automatischen und asynchronen Erstellung und Aktualisierung für die Datenbank „CustomerSales“ aktivieren. Dadurch werden zur Erstellung hochwertiger Abfragepläne nach Bedarf einspaltige Statistiken erstellt und aktualisiert.

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