Partager via


MSSQL_REPL027183

Détails du message

Nom de produit

SQL Server

Version du produit

10.0

Numéro de build du produit

 

ID de l'événement

27183

Source de l'événement

MSSQLSERVER

Composant

Moteur de base de données SQL Server

Nom symbolique

Texte du message

Le processus de fusion n'a pas pu énumérer les modifications apportées aux articles via le filtre de lignes paramétrable. Si le problème persiste, augmentez le délai de requête du processus, réduisez la période de rétention de la publication, puis améliorez les index des tables publiées.

Explication

Cette erreur est émise si le délai d'attente d'un Agent de fusion est dépassé lors du traitement des modifications dans une publication filtrée. Le dépassement du délai d'attente peut être causé par l'un des problèmes suivants :

  • Non-utilisation de l'optimisation des partitions précalculées.

  • Fragmentation de l'index sur les colonnes utilisées pour le filtrage.

  • Tables volumineuses de métadonnées de fusion, comme MSmerge_tombstone, MSmerge_contents et MSmerge_genhistory.

  • Tables filtrées qui ne sont pas jointes sur une clé unique, et filtres de jointures qui impliquent un grand nombre de tables.

Action de l'utilisateur

Pour résoudre ce problème :

  • Augmentez la valeur du paramètre -QueryTimeOut pour l'Agent de fusion afin de permettre au processus de se poursuivre pendant que vous résolvez les problèmes sous-jacents qui provoquent cette erreur. Les paramètres d'Agent peuvent être spécifiés dans les profils d'agents et dans la ligne de commande. Pour plus d'informations, consultez :

  • Utilisez si possible l'optimisation des partitions précalculées. Cette optimisation est utilisée par défaut si un certain nombre de conditions de publication sont remplies. Pour plus d'informations sur ces conditions, consultez Optimiser les performances des filtres paramétrés avec des partitions précalculées. Si la publication ne remplit pas ces conditions, envisagez de modifier sa conception.

  • Spécifiez la valeur la plus basse possible pour la période de rétention de la publication, parce que la réplication ne peut pas nettoyer les métadonnées de la publication et des bases de données d'abonnement tant que la période de rétention n'est pas achevée. Pour plus d'informations, consultez Expiration et désactivation des abonnements.

  • Dans le cadre de la gestion d'une réplication de fusion, contrôlez de temps en temps le développement des tables système associées à cette réplication :MSmerge_contents, MSmerge_genhistory, MSmerge_tombstone, MSmerge_current_partition_mappings et MSmerge_past_partition_mappings. Réindexez périodiquement ces tables. Pour plus d'informations, consultez Réorganiser et reconstruire des index.

  • Assurez-vous que les colonnes utilisées pour le filtrage sont correctement indexées et le cas échéant rebâtissez les index. Pour plus d'informations, consultez Réorganiser et reconstruire des index.

  • Définissez la propriété join_unique_key sur les filtres de jointure qui sont basés sur des colonnes uniques Pour plus d'informations, consultez Filtres de jointure.

  • Limitez le nombre de tables dans la hiérarchie du filtre de jointure. Si vous générez des filtres de jointure pour au moins cinq tables, envisagez d'autres solutions : ne filtrez pas les petites tables, les tables qui ne changent pas ou les tables de recherche principales. Utilisez des filtres de jointure seulement entre des tables qui doivent être partitionnées entre des abonnements.

  • Réduisez entre les synchronisations le nombre de changements apportés aux tables filtrées, ou exécutez l'Agent de fusion plus souvent. Pour plus d'informations sur la définition de planifications de synchronisation, consultez Spécifier des planifications de synchronisation.

Voir aussi

Concepts

Guide de référence des erreurs et des événements (réplication)