Enable Stretch Database for a table

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores: solo Windows

Importante

Stretch Database está en desuso en SQL Server 2022 (16.x) y Azure SQL Database. Esta característica se quitará en una versión futura del motor de base de datos. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

Si quiere configurar una tabla para Stretch Database, seleccione Stretch > Habilitar para una tabla de SQL Server Management Studio para abrir el asistente para habilitar la tabla para Stretch. También puede utilizar Transact-SQL para habilitar Stretch Database en una tabla existente o crear una tabla nueva con Stretch Database habilitado.

Importante

La compatibilidad con Stretch Database se elimina en SQL Server Management Studio v19. Para administrar Stretch Database, puede usar SQL Server Management Studio v18.9.1 o versiones anteriores.

  • Si los datos inactivos están almacenados en otra tabla, puede migrarla entera.

  • Si la tabla contiene datos activos e inactivos, puede especificar una función de filtro para seleccionar las filas que se migrarán.

Requisitos previos. Si selecciona Stretch > Habilitar para una tabla y aún no se ha habilitado Stretch Database para la base de datos, el asistente configura primero la base de datos para Stretch Database. Siga los pasos de Introducción mediante la ejecución del Asistente para Habilitar base de datos para Stretch en lugar de los pasos de este artículo.

Permisos. Para habilitar Stretch Database en una base de datos o tabla, se requieren permisos db_owner. La habilitación de Stretch Database en una tabla también requiere permisos ALTER en la tabla.

Nota

Posteriormente, si deshabilita Stretch Database, recuerde que al deshabilitar Stretch Database para una tabla o una base de datos no se elimina el objeto remoto. Si quiere eliminar la tabla o la base de datos remotas, tiene que quitarlas mediante el Portal de administración de Azure. Los objetos remotos siguen acumulando gastos de Azure hasta que se eliminan manualmente.

Uso del asistente

1. Inicio del asistente

  1. En SQL Server Management Studio, en el Explorador de objetos, seleccione la tabla en la que desea habilitar Stretch.

  2. Haga clic con el botón derecho y seleccione Stretch > Habilitar para iniciar el asistente.

2. Introducción

Consulte la finalidad del asistente y los requisitos previos.

3. Selección de tablas de base de datos

Confirme que la tabla que desea habilitar se muestra y está seleccionada.

Puede migrar toda una tabla o especificar una función de filtro en el asistente. Si quiere usar un tipo de función de filtro diferente para seleccionar las filas que va a migrar, realice una de las siguientes acciones.

  • Salga del asistente y ejecute la instrucción ALTER TABLE para habilitar Stretch para la tabla y especificar una función de filtro.

  • Ejecute la instrucción ALTER TABLE para especificar una función de filtro después de salir del asistente. Para conocer los pasos necesarios, vea Agregar una función de filtro después de ejecutar el asistente.

La sintaxis de ALTER TABLE se describe más adelante en este artículo.

4. Resumen

Revise los valores especificados y las opciones seleccionadas en el asistente. Después, seleccione Finalizar para habilitar Stretch.

5. Resultados

Revise los resultados.

Uso de Transact-SQL

Puede utilizar Transact-SQL para habilitar Stretch Database en una tabla existente o crear una tabla nueva con Stretch Database habilitado.

Opciones

Utilice las siguientes opciones al ejecutar CREATE TABLE o ALTER TABLE para habilitar Stretch Database en una tabla.

  • Si la tabla contiene datos activos e inactivos, puede usar opcionalmente la cláusula FILTER_PREDICATE = <function> para especificar una función y seleccionar las filas que se migrarán. El predicado debe llamar a una función con valores de tabla insertada. Para obtener más información, vea Select rows to migrate by using a filter function (Seleccionar las filas que se van a migrar mediante una función de filtro). Si no se especifica una función de filtro, se migrará toda la tabla.

    Importante

    Si se indica una función de filtro que tiene un rendimiento bajo, la migración de datos también tendrá un rendimiento bajo. Stretch Database aplica la función de filtro a la tabla por medio del operador CROSS APPLY.

  • Especifique MIGRATION_STATE = OUTBOUND para iniciar la migración de datos de inmediato o MIGRATION_STATE = PAUSED si desea posponer el inicio de la migración.

Habilitar Stretch Database para una tabla existente

Si desea configurar una tabla para Stretch Database, ejecute el comando ALTER TABLE.

En el ejemplo siguiente se migra toda la tabla y la migración de datos se inicia de inmediato.

USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
    SET ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO

En el ejemplo siguiente solo se migran las filas identificadas con la función con valores de tabla insertada dbo.fn_stretchpredicate y se pospone la migración de datos. Para obtener más información sobre la función de filtro, vea Select rows to migrate by using a filter function (Seleccionar las filas que se van a migrar mediante una función de filtro).

USE [<Stretch-enabled database name>];
GO
ALTER TABLE [<table name>]
    SET ( REMOTE_DATA_ARCHIVE = ON (
        FILTER_PREDICATE = dbo.fn_stretchpredicate(),
        MIGRATION_STATE = PAUSED ) );
GO

Para obtener más información, consulte ALTER TABLE (Transact-SQL).

Crear una nueva tabla con Stretch Database habilitado

Para crear una nueva tabla con Stretch Database habilitado, ejecute el comando CREATE TABLE.

En el ejemplo siguiente se migra toda la tabla y la migración de datos se inicia de inmediato.

USE [<Stretch-enabled database name>];
GO
CREATE TABLE [<table name>]
    (
        col1 int
        /* replace the sample "col1" column shown above, with the actual list of columns */
    )
    WITH ( REMOTE_DATA_ARCHIVE = ON ( MIGRATION_STATE = OUTBOUND ) );
GO

En el ejemplo siguiente solo se migran las filas identificadas con la función con valores de tabla insertada dbo.fn_stretchpredicate y se pospone la migración de datos. Para obtener más información sobre la función de filtro, vea Select rows to migrate by using a filter function (Seleccionar las filas que se van a migrar mediante una función de filtro).

USE [<Stretch-enabled database name>];
GO
CREATE TABLE [<table name>]
    (
        col1 int
        /* replace the sample "col1" column shown above, with the actual list of columns */
    )
    WITH ( REMOTE_DATA_ARCHIVE = ON (
        FILTER_PREDICATE = dbo.fn_stretchpredicate(),
        MIGRATION_STATE = PAUSED ) );
GO

Para obtener más información, consulte CREATE TABLE (Transact-SQL).

Vea también