Nous avons une application Web ASP.NET hébergée par une ferme Web de nombreuses instances utilisant SQL Server 2008 dans laquelle nous effectuons l'agrégation et le pré-traitement des données à partir de plusieurs sources dans un format optimisé pour les performances de requête utilisateur rapide (produisant 5 à 10 millions de lignes dans certaines tables). L'agrégation et l'optimisation sont effectuées par un service sur un serveur principal que nous voulons ensuite distribuer à plusieurs copies frontales en lecture seule utilisées par les instances d'application Web pour faciliter l'évolutivité maximale.Modèle pour la mise à jour des bases de données SQL Server 2008 à partir d'un maître tout en minimisant la perturbation
Ma question concerne le meilleur moyen d'obtenir ces données à partir d'une base de données dorsale vers les copies frontales en lecture seule, de manière à ne pas nuire à leurs performances au cours du processus. Les instances de l'application Web frontale seront soumises à une charge élevée constante et doivent avoir une bonne réactivité à tout moment. La base de données principale est constamment mise à jour donc je suspecte que la réplication transactionnelle ne sera pas la meilleure approche, car le flot constant de mises à jour des copies nuira à leurs performances.
L'inertie des données n'est pas un problème majeur, la réplication d'instantanés peut être la solution, mais cela entraînera des performances médiocres pendant les périodes de réplication.
Si vous effectuez une insertion en bloc et en masse, vous obtiendrez des périodes sans données pour les requêtes utilisateur. Je ne veux pas vraiment entrer dans l'écriture d'une approche de cluster complexe où nous laissons des copies hors du cluster pendant la mise à jour - y a-t-il quelque chose dans ce sens que nous pouvons faire sans trop d'efforts ou existe-t-il une meilleure alternative? ?
+1 pour offrir jusqu'à 100 points d'un compte avec 377 points pour commencer. C'est juste vieux bon vieux. –
Vous mentionnez plusieurs bases de données en lecture seule, mais il semble qu'il n'y ait qu'une seule application Web. Pouvez-vous expliquer plus loin? –
J'ai mis à jour la question pour clarifier ceci - il y a beaucoup d'instances de l'application web –