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

S’applique à : Système de plateforme Analytics (PDW)

Dans Analytics Platform System (PDW), ALTER DATABASE il modifie les options de taille maximale de base de données pour les tables répliquées, les tables distribuées et le journal des transactions. Cette instruction permet de gérer les allocations de l’espace disque à mesure que la taille d’une base de données augmente ou diminue. Cet article décrit également la syntaxe liée à la définition des options de base de données dans Analytics Platform System (PDW).

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Nom de la base de données à modifier. Pour afficher une liste des bases de données sur l’appliance, utilisez sys.databases.

AUTOGROW = { ON | OFF }

Met à jour l’option AUTOGROW. Quand AUTOGROW est défini sur ON, Analytics Platform System (PDW) augmente automatiquement l’espace alloué pour les tables répliquées, les tables distribuées et le journal des transactions en fonction des besoins pour s’adapter à la croissance des besoins de stockage. Quand AUTOGROW est défini sur OFF, Analytics Platform System (PDW) retourne une erreur si des tables, répliquées, des tables distribuées ou le journal des transactions dépasse le paramètre de taille maximale.

REPLICATED_SIZE = taille [Go]

Spécifie le nouveau nombre maximal de gigaoctets par nœud de calcul pour le stockage de toutes les tables répliquées dans la base de données en cours de modification. Si vous planifiez l’espace de stockage de l’appliance, vous devez multiplier les REPLICATED_SIZE par le nombre de nœuds de calcul dans l’appliance.

DISTRIBUTED_SIZE = taille [Go]

Spécifie le nouveau nombre maximal de gigaoctets par base de données pour le stockage de toutes les tables distribuées dans la base de données en cours de modification. La taille est répartie entre tous les nœuds de calcul dans l’appliance.

LOG_SIZE = taille [Go]

Spécifie le nouveau nombre maximal de gigaoctets par base de données pour le stockage de tous les journaux des transactions dans la base de données en cours de modification. La taille est répartie entre tous les nœuds de calcul dans l’appliance.

CHIFFREMENT { ON | OFF }

Spécifie si la base de données doit être chiffrée (ON) ou non chiffrée (OFF). Le chiffrement peut être configuré uniquement pour Analytics Platform System (PDW) quand sp_pdw_database_encryption a été défini sur 1. Une clé de chiffrement de base de données doit être créée avant de pouvoir configurer le chiffrement transparent des données. Pour plus d’informations sur le chiffrement de base de données, consultez Transparent Data Encryption (TDE).

SET AUTO_CREATE_STATISTICS { ON | OFF }

Quand l’option de création automatique de statistiques AUTO_CREATE_STATISTICS est activée, l’optimiseur de requête crée les statistiques nécessaires sur les colonnes individuelles du prédicat de requête pour améliorer les estimations de cardinalité pour le plan de requête. Ces statistiques à colonne unique sont créées sur des colonnes qui n’ont pas encore d’histogramme dans un objet de statistiques existant.

La valeur par défaut est ON pour les nouvelles bases de données créées après la mise à niveau vers AU7. La valeur par défaut est OFF pour les bases de données créées avant la mise à niveau.

Pour plus d’informations sur les statistiques, consultez Statistiques.

SET AUTO_UPDATE_STATISTICS { ON | OFF }

Lorsque l’option de mise à jour automatique des statistiques, AUTO_UPDATE_STATISTICS, est ON, l’optimiseur de requête détermine quand les statistiques peuvent être obsolètes, puis les met à jour lorsqu’elles sont utilisées par une requête. Les statistiques deviennent obsolètes si des opérations d’insertion, de mise à jour, de suppression ou de fusion changent la distribution des données dans la table ou la vue indexée. L'optimiseur de requête détermine si les statistiques sont obsolètes en comptant le nombre de modifications de données depuis la dernière mise à jour des statistiques et en comparant le nombre de modifications à un seuil. Ce seuil est basé sur le nombre de lignes contenues dans la table ou la vue indexée.

La valeur par défaut est ON pour les nouvelles bases de données créées après la mise à niveau vers AU7. La valeur par défaut est OFF pour les bases de données créées avant la mise à niveau.

Pour plus d’informations sur les statistiques, consultez Statistiques.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }

L'option de mise à jour asynchrone des statistiques AUTO_UPDATE_STATISTICS_ASYNC détermine si l'optimiseur de requête utilise des mises à jour de statistiques synchrones ou asynchrones. L’option AUTO_UPDATE_STATISTICS_ASYNC s’applique aux objets de statistiques créés pour les index, aux colonnes uniques contenues dans les prédicats de requête et aux statistiques créées à l’aide de l’instruction CREATE STATISTICS .

La valeur par défaut est ON pour les nouvelles bases de données créées après la mise à niveau vers AU7. La valeur par défaut est OFF pour les bases de données créées avant la mise à niveau.

Pour plus d’informations sur les statistiques, consultez Statistiques.

Permissions

Nécessite l’autorisation ALTER sur la base de données.

Messages d’erreur

Si les statistiques automatiques sont désactivées et que vous essayez de modifier les paramètres des statistiques, PDW génère l’erreur This option isn't supported in PDW. L’administrateur système peut activer les statistiques automatiques en activant le commutateur de fonctionnalité AutoStatsEnabled.

Remarques

Les valeurs de REPLICATED_SIZE, DISTRIBUTED_SIZE et LOG_SIZE peuvent être supérieures, égales ou inférieures aux valeurs actuelles de la base de données.

Limitations

Les opérations d’augmentation et de réduction sont approximatives. Les tailles réelles obtenues peuvent varier en fonction des paramètres de taille.

Analytics Platform System (PDW) n’effectue pas l’instruction ALTER DATABASE en tant qu’opération atomique. Si l’instruction est interrompue pendant l’exécution, les modifications qui ont déjà eu lieu sont conservées.

Les paramètres de statistiques fonctionnent uniquement si l’administrateur a activé les statistiques automatiques. Si vous êtes administrateur, utilisez le commutateur de fonctionnalité AutoStatsEnabled pour activer ou désactiver les statistiques automatiques.

Comportement du verrouillage

Prend un verrou partagé sur l’objet DATABASE. Vous ne pouvez pas modifier une base de données utilisée par un autre utilisateur pour la lecture ou l’écriture. Cela inclut les sessions qui ont émis une instruction USE sur la base de données.

Performance

La réduction de la taille d’une base de données peut prendre beaucoup de temps et consommer beaucoup de ressources système, en fonction de la taille des données réelles contenues dans la base de données et du volume de fragmentation sur le disque. Par exemple, la réduction de la taille d’une base de données peut prendre plusieurs heures ou plus.

Déterminer la progression du chiffrement

Pour déterminer la progression du chiffrement transparent des données de base de données sous la forme d’un pourcentage, utilisez la requête suivante :

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

Pour obtenir un exemple complet illustrant toutes les étapes d’implémentation de TDE, consultez Transparent Data Encryption (TDE).

Exemples : Analytics Platform System (PDW)

A. Modifier le paramètre AUTOGROW

Définissez AUTOGROW sur ON pour la base de données CustomerSales.

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Modifier le stockage maximal pour les tables répliquées

L’exemple suivant définit la limite de stockage des tables répliquées sur 1 Go pour la base de données CustomerSales. Il s’agit de la limite de stockage par nœud de calcul.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Modifier le stockage maximal pour les tables distribuées

L’exemple suivant définit la limite de stockage de table distribuée à 1 000 Go (1 téraoctet) pour la base de données CustomerSales. Il s’agit de la limite de stockage combiné sur l’ensemble de l’appliance pour tous les nœuds de calcul, et non pas la limite de stockage par nœud de calcul.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Modifier le stockage maximal pour le journal des transactions

L’exemple suivant met à jour la base de données CustomerSales pour avoir une taille maximale du journal de transactions SQL Server de 10 Go pour l’appliance.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Rechercher les valeurs des statistiques actuelles

La requête suivante retourne les valeurs des statistiques actuelles pour toutes les bases de données. La valeur 1 signifie que la fonctionnalité est activée, et un 0 qu’elle est désactivée.

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

F. Activer les statistiques de création automatique et de mise à jour automatique pour une base de données

Utilisez l’instruction suivante pour activer les statistiques de création et de mise à jour, de façon automatique et asynchrone, pour la base de données CustomerSales. Cette opération crée et met à jour, selon les besoins, des statistiques dans une seule colonne pour créer des plans de requête de haute qualité.

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