Nous concevons des sites web pour des sociétés immobilières. Les sites web sont utilisés uniquement pour afficher les informations et tous les sites web partagent un modèle commun. Nous avons environ 150 sites web pour différents clients. Des fournisseurs de données tiers nous fournissent toutes les mises à jour de chaque annonce sur le site Web toutes les heures. Les mises à jour pour chaque client se font à des heures différentes. En moyenne, nous avons 1000 inscriptions par site web. Et à chaque mise à jour horaire, 80 % des données sont modifiées ou mises à jour.
Actuellement, nous disposons d'une seule base de données dans Sql server 2008, pour tous les clients (conçue initialement pour gérer 10 à 20 sites web). Les tables de la base de données sont partagées par tous. Le problème est que chaque fois qu'une mise à jour a lieu, cela ralentit également les sites web des autres clients, qui ne sont pas du tout liés à la mise à jour. De même, la suppression des données d'un client ralentit tous les sites.
J'envisage de remodeler la base de données en créant un schéma distinct pour chaque client, mais je ne suis pas sûr que ce soit la meilleure façon de traiter notre problème. Le fait d'avoir une base de données séparée crée de nombreux problèmes de maintenance (sauvegardes, mise en miroir, etc.). Quelqu'un peut-il me suggérer une meilleure façon de gérer ce problème ? Je ne suis pas sûr de l'impact sur les performances si je crée un schéma séparé pour chaque client et si j'isole leurs tables des autres. Ou existe-t-il une meilleure solution ?