Abonnés à la réplication de tables optimisées en mémoire
S’applique à : SQL Server Azure 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. À compter de SQL Server 2016 (13.x), cette fonctionnalité n’est pas disponible.
Deux configurations requises
Configurer la base de données de l’abonné pour la prise en charge de la réplication vers les tables mémoire optimisées
Affectez à la propriété @memory_optimized la valeur true en utilisant sp_addsubscription (Transact-SQL) ou sp_changesubscription (Transact-SQL).
Configurer l’article pour la prise en charge de la réplication vers les tables mémoire optimisées
Définissez l’option
@schema_option = 0x40000000000
pour l’article en utilisant sp_addarticle (Transact-SQL) ou sp_changearticle (Transact-SQL).
Pour configurer une table mémoire optimisée en tant qu’abonné
Créez une publication transactionnelle. Pour plus d’informations, voir Create a Publication.
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.Dans la fenêtre de propriétés d’article, définissez Activer l’optimisation mémoire sur true.
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.
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
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 qu’une fois l’abonnement réinitialisé.
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.
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.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 effectuez la configuration en utilisant Transact-SQL, affectez au paramètre @schema_option de la procédure stockée sp_addarticle la valeur 0x0000080000000000.
Régénérez la capture instantanée.
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.
Les tables répliquées en tables mémoire optimisées sur un abonné sont limitées aux types de données autorisés dans les tables mémoire optimisées. Pour plus d’informations, consultez Types de données pris en charge pour l’OLTP en mémoire.
Toutes les fonctionnalités Transact-SQL ne sont pas prises en charge avec les tables optimisées en mémoire. Pour plus d’informations, consultez Constructions Transact-SQL non prises en charge par OLTP en mémoire.
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é.