Réplication vers table optimisée mémoire Abonnés

S’applique à :SQL ServerAzure SQL Managed Instance

Vous pouvez configurer comme tables optimisées en mémoire des tables qui agissent en tant qu’abonnés à la réplication d’instantané et à la réplication transactionnelle, à l’exception de la réplication transactionnelle homologue à homologue. Les tables optimisées en mémoire ne sont pas compatibles avec d’autres configurations de réplication. Cette fonctionnalité est disponible à partir de SQL Server 2016 (13.x).

Deux configurations requises

Pour configurer une table optimisée en mémoire en tant qu’abonné

  1. Créez une publication transactionnelle. Pour plus d’informations, voir Create a Publication.

  2. Ajoutez des articles à la publication. Pour plus d’informations, consultez définir un Article.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au paramètre @schema_option de la procédure stockée sp_addarticle la valeur
    0x40000000000.

  3. Dans la fenêtre des propriétés de l’article, mets Activer l’optimisation de la mémoire sur true.

  4. Démarrez le travail de l'Agent d'instantané pour générer l'instantané initial pour cette publication. Pour plus d’informations, voir Create and Apply the Initial Snapshot.

  5. Ensuite, créez un abonnement. Dans l’ Assistant Nouvel abonnement , définissez Abonnement de mémoire optimisée sur true.

Les tables optimisées en mémoire doivent maintenant commencer à recevoir des mises à jour de la part du serveur de publication.

Reconfigurer une réplication de transaction existante

  1. Accédez aux propriétés d’abonnement dans Management Studio et définissez Abonnement de mémoire optimisée sur true. Les modifications ne sont appliquées que lorsque vous avez réinitialisé l’abonnement.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au nouveau paramètre @memory_optimized de la procédure stockée sp_addsubscription la valeur true.

  2. Accédez aux propriétés d’article d’une publication dans Management Studio, puis définissez Activer l’optimisation mémoire sur true.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au paramètre @schema_option de la procédure stockée sp_addarticle la valeur
    0x40000000000.

  3. Les tables optimisées en mémoire ne prennent pas en charge les index en cluster. Pour que la réplication gère cette limitation en convertissant l’index en index non clusterisé sur la destination, définissez Convertir l’index clusterisé en index non clusterisé pour l’article optimisé en mémoire sur true.

    Si vous effectuez la configuration en utilisant Transact-SQL, affectez au paramètre @schema_option de la procédure stockée sp_addarticle la valeur 0x0000080000000000.

  4. Régénérez la capture instantanée.

  5. Réinitialisez l’abonnement.

Remarques et restrictions

Seule la réplication transactionnelle monodirectionnelle est prise en charge. La réplication transactionnelle pair-à-pair n’est pas prise en charge.

Vous ne pouvez pas publier de tables optimisées en mémoire.

Vous ne pouvez pas configurer les tables de réplication sur le distributeur comme tables optimisées en mémoire.

Vous ne pouvez pas inclure de tables optimisées en mémoire dans la réplication de fusion.

Chez l’abonné, vous pouvez configurer les tables impliquées dans la réplication transactionnelle comme tables optimisées en mémoire, mais les tables des abonnés doivent répondre aux exigences des tables optimisées en mémoire. Cette exigence impose les restrictions suivantes :

Modification d'un fichier de schéma

  • Si vous utilisez l’option DURABILITY = SCHEMA_AND_DATAde table optimisée en mémoire , la table doit avoir un index de clé primaire non clusterisé.

  • ANSI_PADDING doit être ON.