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

Se aplica:Analytics Platform System (PDW)

En Analytics Platform System (PDW), ALTER DATABASE modifica las opciones de tamaño máximo de base de datos para tablas replicadas, tablas distribuidas y el registro de transacciones. Use esta instrucción para administrar las asignaciones de espacio de disco para una base de datos a medida que aumenta o disminuye de tamaño. En este artículo también se describe la sintaxis relacionada con la configuración de las opciones de base de datos en el sistema de la plataforma Analytics (PDW).

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Nombre de la base de datos que se va a modificar. Para mostrar una lista de bases de datos en el dispositivo, use sys.databases.

AUTOGROW = { ON | OFF }

Actualiza la opción AUTOGROW. Cuando AUTOGROW es ON, Sistema de la plataforma de análisis (PDW) aumenta automáticamente el espacio asignado para las tablas replicadas, tablas distribuidas y el registro de transacciones según sea necesario para adecuarse al crecimiento de los requisitos de almacenamiento. Cuando AUTOGROW es OFF, Sistema de la plataforma de análisis (PDW) devuelve un error si las tablas replicadas, tablas distribuidas o el registro de transacciones supera la configuración de tamaño máximo.

REPLICATED_SIZE = tamaño [GB]

Especifica el nuevo tamaño máximo en gigabytes por nodo de ejecución para almacenar todas las tablas replicadas en la base de datos que se va a modificar. Si va a planear el espacio de almacenamiento del dispositivo, debe multiplicar REPLICATED_SIZE por el número de nodos de proceso del dispositivo.

DISTRIBUTED_SIZE = tamaño [GB]

Especifica el nuevo tamaño máximo en gigabytes por base de datos para almacenar todas las tablas distribuidas de la base de datos que se va a modificar. El tamaño se distribuye entre todos los nodos de ejecución en el dispositivo.

LOG_SIZE = tamaño [GB]

Especifica el nuevo tamaño máximo en gigabytes por base de datos para almacenar todas los registros de transacciones de la base de datos que se va a modificar. El tamaño se distribuye entre todos los nodos de ejecución en el dispositivo.

CIFRADO { ON | OFF }

Establece que se cifre (ON) o no se cifre (OFF) la base de datos. Solo se puede configurar el cifrado para Sistema de la plataforma de análisis (PDW) cuando sp_pdw_database_encryption se haya establecido en 1. Se debe crear una clave de cifrado de base de datos antes de poder configurar el cifrado de datos transparente. Para obtener más información sobre el cifrado de base de datos, consulte Cifrado de datos transparente (TDE).

SET AUTO_CREATE_STATISTICS { ON | OFF }

Cuando está activada la opción automática de creación de estadísticas, AUTO_CREATE_STATISTICS, el optimizador de consultas crea las estadísticas en columnas individuales en el predicado de consulta, según sea necesario, para mejorar las estimaciones de cardinalidad del plan de consulta. Estas estadísticas de una sola columna se crean en columnas que aún no tienen un histograma en un objeto de estadísticas existente.

El valor predeterminado es ON para las bases de datos creadas después de actualizar a AU7. El valor predeterminado es OFF para las bases de datos creadas antes de la actualización.

Para obtener más información sobre las estadísticas, vea Estadísticas.

SET AUTO_UPDATE_STATISTICS { ON | OFF }

Cuando la opción de estadísticas de actualización automática, AUTO_UPDATE_STATISTICS, es ON, el optimizador de consultas determina cuándo las estadísticas pueden estar obsoletas y, a continuación, las actualiza cuando una consulta las usa. Las estadísticas se vuelven obsoletas después de que las operaciones de inserción, actualización, eliminación o combinación cambien la distribución de los datos en la tabla o la vista indexada. El optimizador de consultas determina cuándo han podido quedar obsoletas las estadísticas contando el número de modificaciones de datos desde la actualización más reciente de las estadísticas, comparando el número de modificaciones con respecto a un umbral. El umbral se basa en el número de filas de la tabla o de la vista indizada.

El valor predeterminado es ON para las bases de datos creadas después de actualizar a AU7. El valor predeterminado es OFF para las bases de datos creadas antes de la actualización.

Para obtener más información sobre las estadísticas, vea Estadísticas.

SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }

La opción de actualización asincrónica de estadísticas AUTO_UPDATE_STATISTICS_ASYNC determina si el Optimizador de consultas utiliza actualizaciones sincrónicas o asincrónicas de las estadísticas. La opción AUTO_UPDATE_STATISTICS_ASYNC se aplica a los objetos de estadísticas creados para índices y columnas únicas de los predicados de consulta, así como a las estadísticas creadas con la instrucción CREATE STATISTICS .

El valor predeterminado es ON para las bases de datos creadas después de actualizar a AU7. El valor predeterminado es OFF para las bases de datos creadas antes de la actualización.

Para obtener más información sobre las estadísticas, vea Estadísticas.

Permissions

Requiere el ALTER permiso en la base de datos.

Mensajes de error

Si se deshabilitan las estadísticas automáticas e intenta modificar las estadísticas, PDW genera el error This option isn't supported in PDW. El administrador del sistema puede habilitar las estadísticas automáticas si habilita el modificador de características AutoStatsEnabled.

Remarks

Los valores de REPLICATED_SIZE, DISTRIBUTED_SIZE y LOG_SIZE pueden ser mayor que, igual que o menor que los valores actuales de la base de datos.

Limitaciones

Las operaciones de crecimiento y reducción son aproximadas. Los tamaños reales resultantes pueden variar con respecto a los parámetros de tamaño.

Analytics Platform System (PDW) no realiza la ALTER DATABASE instrucción como una operación atómica. Si la instrucción se anula durante la ejecución, se conservarán los cambios que ya se han producido.

La configuración de estadísticas solo funciona si el administrador ha habilitado estadísticas automáticas. Si es administrador, use el modificador de características AutoStatsEnabled para habilitar o deshabilitar estadísticas automáticas.

Comportamiento de bloqueo

Toma un bloqueo compartido en el objeto DATABASE. No se puede modificar una base de datos que use otro usuario para leer o escribir. Esto incluye las sesiones que han emitido una instrucción USE en la base de datos.

Performance

Reducir una base de datos puede consumir mucho tiempo y recursos del sistema, en función del tamaño de los datos reales en la base de datos y la cantidad de fragmentación del disco. Por ejemplo, reducir una base de datos puede tardar varias horas o más.

Determinación del progreso del cifrado

Use la consulta siguiente para determinar el progreso del cifrado de datos transparente de base de datos como un porcentaje:

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

Para obtener un ejemplo completo que muestre todos los pasos de implementación de TDE, consulte Cifrado de datos transparente (TDE).

Ejemplos: Sistema de la plataforma de análisis (PDW)

A. Modificación de la configuración de AUTOGROW

Establezca AUTOGROW en ON para la base de datos CustomerSales.

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Modificación del almacenamiento máximo para las tablas replicadas

En el ejemplo siguiente se establece el límite de almacenamiento de tablas replicadas en 1 GB para la base de datos CustomerSales. Este es el límite de almacenamiento por nodo de ejecución.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Modificación del almacenamiento máximo para las tablas distribuidas

En el ejemplo siguiente se establece el límite de almacenamiento de tablas distribuidas en 1000 GB (1 terabyte) para la base de datos CustomerSales. Este es el límite de almacenamiento combinado en todo el dispositivo para todos los nodos de ejecución, no el límite de almacenamiento por nodo de ejecución.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Modificación del almacenamiento máximo para el registro de transacciones

En el ejemplo siguiente se actualiza la base de datos CustomerSales para que tenga un tamaño máximo de registro de transacciones de SQL Server de 10 GB para el dispositivo.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Comprobación de los valores de estadísticas actuales

La consulta siguiente devuelve los valores actuales de las estadísticas para todas las bases de datos. El valor 1 significa que la característica está activada, y 0 que está desactivada.

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

F. Habilitación de estadísticas de creación y actualización automáticas para una base de datos

Use la instrucción siguiente para habilitar las estadísticas de creación y actualización de manera automática y asincrónica para la base de datos, CustomerSales. De esta forma, se crean y actualizan las estadísticas de columna única según sea necesario para crear planes de consulta de alta calidad.

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