> Tech > Utilisation de la réplication forcée pour synchroniser des tables volumineuses

Utilisation de la réplication forcée pour synchroniser des tables volumineuses

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Pour mettre en oeuvre la réplication forcée, deux nouvelles procédures stockées seulement suffisent : une pour les tables de petite taille (ou de recherche) et une autre pour les tables volumineuses. En fonction de la taille de votre table, vous pouvez décider d’exécuter la commande UDPATE soit sur des lignes

sélectionnées (au moyen d’une clause WHERE), soit sur toute la table (en laissant la clause WHERE de côté). Si votre table est volumineuse (plusieurs milliers de lignes), vous devez exécuter UPDATE sur un nombre limité d’enregistrements, afin d’éviter les transactions de longue durée et de réduire les risques de blocage d’autres utilisateurs. Si votre table comporte des colonnes qui autorisent le partitionnement des données, vous pouvez employer ces colonnes afin de répliquer (et de synchroniser) une partie seulement de la table. Dans la majorité des cas, il est possible d’employer une colonne datetime pour filtrer les données. Vous pouvez créer une procédure stockée, telle que la procédure sp_ForceRepl illustrée sur le listing 5, afin de filtrer les enregistrements à répliquer. Cette procédure stockée accepte quatre paramètres : TableName, BatchSize, StartDate et EndDate. Examinons le fonctionnement de cette procédure stockée. Premièrement, vous indiquez au code de sélectionner dans la table temporaire #Table1 toutes les clés primaires pour les enregistrements qui répondent aux critères que vous spécifiez dans la clause WHERE sur la colonne f3. Dans le listing 5, le code sélectionne les enregistrements avec des valeurs dans la colonne f3 entre @sStartDate et @sEndDate. Vous sélectionnez ensuite dans la table temporaire #Table1_Temp un certain nombre de clés primaires de #Table1, que vous spécifiez dans le paramètre @iBatchSize, et vous mettez à jour les enregistrements de Table1 qui ont les clés spécifiées. A la fin de la boucle du listing 5, le code supprime les clés primaires traitées de #Table1 et tronque la table #Table1_Temp en vue du prochain cycle. Il est possible de créer un processus de filtrage similaire pour n’importe quelle autre table volumineuse.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010