Abonnés à la réplication de tables optimisées en mémoire

S’applique à :SQL ServerAzure SQL Managed Instance

Les tables agissant comme des abonnés à la réplication de capture instantanée et à la réplication transactionnelle, à l’exclusion de la réplication transactionnelle d’égal à égal, peuvent être configurées en tant que tables mémoire optimisées. Les autres configurations de réplication ne sont pas compatibles avec les tables mémoire optimisées. Cette fonctionnalité est disponible à partir de SQL Server 2016 (13.x).

Deux configurations requises

Pour configurer une table mémoire optimisée 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 configurez à l’aide de Transact-SQL, définissez le paramètre @schema_option de la procédure stockée sp_addarticle sur
    0x40000000000.

  3. Dans la fenêtre de propriétés d’article, définissez Activer l’optimisation 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 mémoire optimisées doivent maintenant commencer à recevoir les mises à jour 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 l’abonnement à mémoire optimisée sur true. Les modifications ne sont appliquées qu’une fois l’abonnement réinitialisé.

    Si vous configurez à l’aide de Transact-SQL, définissez le nouveau paramètre @memory_optimized de la procédure stockée sp_addsubscription sur true.

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

    Si vous configurez à l’aide de Transact-SQL, définissez le paramètre @schema_option de la procédure stockée sp_addarticle sur
    0x40000000000.

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

    Si vous configurez à l’aide de Transact-SQL, définissez le paramètre @schema_option de la procédure stockée sp_addarticle sur 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 d'égal à égal n'est pas prise en charge.

Les tables mémoire optimisées ne peuvent pas être publiées.

Les tables de réplication sur le serveur de distribution ne peuvent pas être configurées comme des tables mémoire optimisées.

La réplication de fusion ne peut pas inclure des tables mémoire optimisées.

Sur l'abonné, les tables impliquées dans la réplication transactionnelle peuvent être configurées en tant que tables mémoire optimisées, mais les tables d'abonné doivent répondre aux exigences des tables mémoire optimisées. Cette fonction requiert les restrictions suivantes.

Modification d'un fichier de schéma

  • Si vous utilisez l'option de table mémoire optimisée DURABILITY = SCHEMA_AND_DATA , la table doit avoir un index de clé primaire non cluster.

  • ANSI_PADDING doit être activé.