Enable Stretch Database for a table

S’applique à : SQL Server 2016 (13.x) et versions ultérieures - Windows uniquement

Important

Stretch Database est déprécié dans SQL Server 2022 (16.x) et Azure SQL Database. Cette fonctionnalité sera supprimée dans une version future de moteur de base de données. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.

Pour configurer une table pour Stretch Database, sélectionnez Stretch > Activer pour une table dans SQL Server Management Studio afin d’ouvrir l’Assistant Activer la table pour Stretch. Vous pouvez également utiliser Transact-SQL pour activer Stretch Database sur une table existante, ou pour créer une table avec Stretch Database.

Important

La prise en charge de Stretch Database est supprimée dans SQL Server Management Studio v19. Pour gérer Stretch Database, vous pouvez utiliser SQL Server Management Studio version 18.9.1 ou antérieure.

  • Si vous stockez des données à froid dans une table distincte, vous pouvez migrer la table entière.

  • Si votre table contient des données actuelles et anciennes, vous pouvez spécifier une fonction de filtre pour sélectionner les lignes à migrer.

Conditions préalables. Si vous sélectionnez Stretch > Activer pour une table et que vous n’avez pas encore activé Stretch Database pour la base de données, l’Assistant configure d’abord la base de données pour Stretch Database. Suivez les étapes de la Mise en route en exécutant l’Assistant Activer la base de données pour Stretch au lieu des étapes décrites dans cet article.

Autorisations. L’activation de Stretch Database sur une table ou une base de données nécessite les autorisations db_owner. L’activation de Stretch Database sur une table nécessite également l’autorisation ALTER sur la table.

Notes

Ultérieurement, n’oubliez pas que la désactivation de Stretch Database pour une table ou une base de données ne supprime pas l’objet distant. Si vous souhaitez supprimer la table distante ou la base de données distante, vous devez la supprimer à l'aide du portail de gestion Azure. Les objets distants continuent d’entraîner des coûts Azure tant qu’ils n’ont pas été supprimés manuellement.

Utiliser l’Assistant

1. Lancer l’Assistant

  1. Dans l’Explorateur d’objets de SQL Server Management Studio, sélectionnez la table pour laquelle vous souhaitez activer Stretch.

  2. Cliquez avec le bouton droit et sélectionnez Stretch >Activer pour lancer l’Assistant.

2. Introduction

Passez en revue l'objectif de l'assistant et les conditions préalables.

3. Sélectionner des tables de base de données

Vérifiez que la table que vous souhaitez activer est affichée et sélectionnée.

Vous pouvez migrer une table entière ou spécifier une fonction de filtre dans l’Assistant. Si vous souhaitez utiliser un autre type de fonction de filtre pour sélectionner les lignes à migrer, effectuez l’une des opérations suivantes.

  • Quittez l’Assistant et exécutez l’instruction ALTER TABLE pour activer Stretch pour la table et pour spécifier une fonction de filtre.

  • Exécutez l’instruction ALTER TABLE pour spécifier une fonction de filtre après avoir quitté l’Assistant. Pour connaître les étapes nécessaires, consultez Ajouter une fonction de filtre après avoir exécuté l’Assistant.

La syntaxe ALTER TABLE est décrite plus loin dans cet article.

4. Résumé

Passez en revue les valeurs que vous avez entrées et les options que vous avez sélectionnées dans l’Assistant. Puis sélectionnez Terminer pour activer Stretch.

5. Résultats

Passez en revue les résultats.

Utiliser Transact-SQL

Vous pouvez activer Stretch Database pour une table existante ou créer une table avec Stretch Database activée à l'aide de Transact-SQL.

Options

Utilisez les options suivantes lorsque vous exécutez CREATE TABLE ou ALTER TABLE pour activer Stretch Database sur une table.

  • Vous pouvez également utiliser la clause FILTER_PREDICATE = <function> pour spécifier une fonction afin de sélectionner les lignes à migrer si la table contient des données chaudes et froides. Le prédicat doit appeler une fonction table inline. Pour plus d’informations, consultez Sélectionner les lignes à migrer à l’aide d’une fonction de filtre. Si vous ne spécifiez pas de fonction de filtre, la table entière est migrée.

    Important

    Si vous fournissez une fonction de filtre qui fonctionne mal, la migration des données fonctionne mal également. Stretch Database applique la fonction de filtre à la table à l’aide de l’opérateur CROSS APPLY.

  • Spécifiez MIGRATION_STATE = OUTBOUND pour démarrer immédiatement la migration des données, ou MIGRATION_STATE = PAUSED pour différer le lancement de la migration des données.

Activer Stretch Database pour une table existante

Pour configurer une table existante pour Stretch Database, exécutez la commande ALTER TABLE.

L’exemple suivant migre la table entière et lance immédiatement la migration des données.

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

L’exemple suivant migre uniquement les lignes identifiées par la fonction table inline dbo.fn_stretchpredicate et reporte la migration des données. Pour plus d’informations sur la fonction de filtre, consultez Sélectionner les lignes à migrer à l’aide d’une fonction de filtre.

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

Pour plus d’informations, consultez ALTER TABLE (Transact-SQL).

Créer une table avec Stretch Database activée

Pour créer une table avec Stretch Database activée, exécutez la commande CREATE TABLE.

L’exemple suivant migre la table entière et lance immédiatement la migration des données.

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

L’exemple suivant migre uniquement les lignes identifiées par la fonction table inline dbo.fn_stretchpredicate et reporte la migration des données. Pour plus d’informations sur la fonction de filtre, consultez Sélectionner les lignes à migrer à l’aide d’une fonction de filtre.

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

Pour plus d’informations, consultez CREATE TABLE (Transact-SQL).

Voir aussi