Problème de performance du système
Les performances de la réplication peuvent être mesurées à l'aide des cinq dimensions suivantes :
Latence : temps nécessaire à la propagation d'une modification de données entre les nœuds d'une topologie de réplication.
Débit : volume des activités de réplication (mesuré en termes de commandes transmises sur une période donnée) que le système est en mesure d'assurer dans le temps.
Accès concurrentiel : nombre de processus de réplication qui peuvent être exécutés simultanément sur un système.
Durée de synchronisation : temps nécessaire à l'exécution d'une synchronisation donnée.
Consommation de ressources : ressources matérielles et réseau utilisées par le traitement de la réplication.
La latence et le débit sont les deux facteurs les plus importants pour la réplication transactionnelle dans la mesure où les systèmes fondés sur ce type de réplication exigent généralement une latence faible et un débit élevé. L'accès concurrentiel et la durée de la synchronisation sont les plus pertinents pour la réplication de fusion car les systèmes qui l'utilisent possèdent souvent un grand nombre d'Abonnés et un serveur de publication peut être confronté à un nombre important de synchronisations simultanées avec ces Abonnés.
Au terme de la configuration de la réplication, il est conseillé d'élaborer une ligne de base de performances, qui vous permet de déterminer le comportement de la réplication avec une charge de travail normale pour vos applications et votre topologie. Utilisez le moniteur de réplication et le Moniteur système pour déterminer les valeurs normales des cinq dimensions de performance de la réplication répertoriées ci-dessus. Une fois ces valeurs de référence établies, définissez des seuils et des alertes dans le moniteur de réplication. Pour plus d'informations, consultez Analyse des performances avec le moniteur de réplication, Définition de seuils et d'avertissements dans le moniteur de réplication et Utilisation des alertes pour les événements de l'Agent de réplication. Pour plus d'informations sur les outils permettant de résoudre les problèmes de réplication, consultez Outils de dépannage (réplication).
Explications et action utilisateur
Les performances de la réplication sont affectées par les facteurs suivants :
Matériel réseau et serveur
Conception des bases de données
Configuration des serveurs de distribution
Conception et options de la publication
Conception et utilisation du filtrage
Options d'abonnement
Options de capture instantanée
Paramètres des Agents
Maintenance
Si vous rencontrez un problème de performance, nous vous conseillons de lire les suggestions présentées dans les sections suivantes et de modifier les éléments qui ont une incidence sur les problèmes rencontrés. Par exemple :
Si vous utilisez la réplication de fusion et que vous constatez dans le moniteur de réplication qu'un seul article filtré consomme un pourcentage élevé du temps de synchronisation : assurez-vous de bien utiliser les options de filtrage appropriées et vérifiez que les colonnes du filtre sont indexées.
Si vous utilisez la réplication transactionnelle et que vous constatez une latence élevée lors de l'exécution d'opérations de traitement sur des tables publiées : envisagez de répliquer l'exécution d'une procédure stockée pour effectuer l'opération de traitement sur l'Abonné.
Tous les types de réplication
Prenez en compte les éléments suivants pour tous les types de réplication. Pour plus d'informations, consultez Amélioration des performances générales de la réplication.
Serveur et réseau
Définissez la quantité de mémoire maximale et minimale allouée à MicrosoftMoteur de base de données SQL Server.
Assurez-vous de l'allocation correcte des fichiers journaux et des fichiers de données des bases de données. Utilisez un lecteur séparé pour le journal des transactions de toutes les bases de données intervenant dans la réplication.
Envisagez d'ajouter de la mémoire aux serveurs utilisés dans la réplication, surtout au serveur de distribution.
Utilisez des ordinateurs multiprocesseurs.
Utilisez un réseau rapide. Si le réseau est lent, spécifiez les paramètres appropriés pour le réseau et les Agents. Pour plus d'informations, consultez Un réseau lent provoque des problèmes.
Conception des bases de données
Respectez les méthodes conseillées en matière de conception de bases de données.
Envisagez de configurer l'option de base de données READ_COMMITTED_SNAPSHOT.
Soyez prudent lorsque vous utilisez une logique d'application avec les déclencheurs.
Limitez l'utilisation de types de données LOB (Large Object).
Conception et options de la publication
Publiez uniquement les données nécessaires.
Minimisez les conflits par la conception de publication et le comportement des applications.
Utilisez les filtres de lignes à bon escient.
Réduisez les niveaux de détail des Agents de réplication, sauf au cours des test initiaux, de l'analyse ou du débogage.
Options d'abonnement
Utilisez des abonnements extraits lorsque le nombre d'Abonnés est important.
Envisagez de réinitialiser l'abonnement en cas de retard trop important au niveau des Abonnés.
Options de capture instantanée
Exécutez l'Agent de capture instantanée uniquement lorsque cela est nécessaire et aux heures creuses.
Utilisez un seul dossier de capture instantanée par publication.
Placez le dossier de capture instantanée sur un lecteur local du serveur de distribution qui n'est pas utilisé pour le stockage des fichiers de bases de données ou des fichiers journaux.
Lorsque vous créez la base de données d'abonnement sur l'Abonné, pensez à définir un modèle de récupération simple ou journalisée.
Utilisez l'autre dossier de capture instantanée et des captures instantanées compressées sur des supports amovibles pour les réseaux à bande passante étroite.
Utilisez le paramètre –MaxBCPThreads des Agents de capture instantanée, de fusion et de distribution. Utilisez le paramètre –UseInprocLoader des Agents de distribution et de fusion.
Réplication transactionnelle
Prenez en compte les éléments suivants pour la réplication transactionnelle. Pour plus d'informations, consultez Amélioration des performances de la réplication transactionnelle.
Conception des bases de données
- Limitez la taille des transactions dans la conception de votre application.
Configuration des serveurs de distribution
Configurez le serveur de distribution sur un serveur dédié.
Définissez une taille adéquate pour la base de données de distribution.
Conception et options de la publication
Répliquez l'exécution des procédures stockées lorsque vous effectuez des mises à jour par lot sur des tables publiées.
Répartissez les articles entre plusieurs publications.
Options d'abonnement
Utilisez les agents indépendants au lieu des agents partagés si le même serveur de publication comporte plusieurs publications (comportement par défaut).
Exécutez les Agents en mode continu et non par l'intermédiaire de planifications très fréquentes.
Paramètres des Agents
Utilisez le paramètre –MaxCmdsInTran pour l'Agent de lecture du journal.
Utilisez le paramètre –SubcriptionStreams pour l'Agent de distribution.
Augmentez la valeur du paramètre -ReadBatchSize pour l'Agent de lecture du journal.
Augmentez la valeur du paramètre -CommitBatchSize pour l'Agent de distribution.
Diminuez la valeur du paramètre -PollingInterval pour l'Agent de lecture du journal.
Réplication de fusion
Prenez en compte les éléments suivants pour la réplication de fusion. Pour plus d'informations, consultez Amélioration des performances de réplication de fusion.
Conception des bases de données
Indexez les colonnes utilisées dans les filtres de lignes et de jointure.
Envisagez de surnormaliser les tables qui comprennent des types de données LOB (Large Object).
Conception de la publication
Utilisez un niveau de compatibilité de la publication de 90RTM (SQL Server 2005) ou version ultérieure.
Utilisez des paramètres de rétention de publication appropriés.
Utilisez des articles en téléchargement seul sur les tables uniquement modifiées sur le serveur de publication.
Conception et utilisation du filtrage
Limitez la complexité des clauses de filtre de lignes.
Utilisez des partitions précalculées avec des filtres paramétrés (cette fonctionnalité est utilisée par défaut).
Utilisez des partitions qui ne se chevauchent pas si les données sont filtrées mais pas partagées entre les utilisateurs.
Ne créez pas des hiérarchies de filtres de jointure complexes.
Affectez à l'option join_unique_key la valeur 1 si la logique le permet.
Considérations relatives aux partitions précalculées
Lorsque des traitements contiennent un grand nombre de données modifiées, soyez vigilant au moment de concevoir l'application. Les modifications apportées aux données de la table parente dans un filtre de jointure doivent intervenir avant les modifications correspondantes dans les tables enfants.
Lorsque des traitements contiennent un grand nombre de données modifiées, réduisez le nombre des modifications dans un traitement et exécutez l'Agent de fusion entre les traitements. Si cela est impossible, augmentez la valeur generation_leveling_threshold de la publication.
Considérations en matière d'abonnements
- Étalez les planifications de synchronisation d'abonnements.
Paramètres des Agents
- Si un abonnement est synchronisé sur une connexion rapide et que les modifications sont envoyées à partir du serveur de publication et de l'Abonné, utilisez le paramètre –ParallelUploadDownload pour l'Agent de fusion.
Options de capture instantanée
Créez une colonne ROWGUIDCOL sur les tables volumineuses avant la génération de la capture instantanée initiale.
Prégénérez les captures instantanées et/ou autorisez les Abonnés à demander la génération et l'application d'une capture instantanée lors de leur première synchronisation.
Maintenance
Procédez de temps en temps à la réindexation des tables système d'une réplication de fusion.
Surveillez les performances de la synchronisation à l'aide de l'onglet Historique de synchronisation dans le moniteur de réplication.