Nous avons eu d'énormes problèmes de performances lors du déploiement de notre application ASP.NET chez un client, dont la base de données reposait sur un emplacement distant.Performances ASP.NET: comptage des requêtes SQL
Nous avons trouvé que c'était dû au fait que les pages rendaient ridicule quantité de requêtes SQL individuelles à la base de données. Nous n'avons jamais remarqué de problème car généralement, le Web et la base de données sont sur le même réseau local (faible latence). Mais sur cette configuration (tout à coup) de faible latence, c'était très très lent.
(Notez que chaque requête SQL par elle-même était rapide, c'est le nombre et la nature sérielle de la séquence qui pose problème).
J'ai demandé à l'équipe d'ingénierie de pouvoir signaler et maintenir un «mur de la honte» (ou stats) nous indiquant pour chaque page le nombre de requêtes SQL afin que nous puissions l'utiliser comme référence. Ils prétendent que c'est cher ..
quelqu'un peut me dire comment être capable de maintenir ou d'obtenir un tel rapport à moindre coût et facilement?
- Nous utilisons SQL Server 2005
- Nous avons un mélange de notre couche d'accès DB et subsonique
- Je sais et utiliser le profileur, mais qui est un manuel de bits. Demander ici s'il y a une astuce sur comment automatiser ou peut-être je suis juste fou?
Qu'est-ce que DB est-ce? –
Cet exercice devrait être trivial dans toute application moyennement bien conçue. Vous pouvez l'utiliser comme référence brute pour déterminer la qualité du code de votre application. Si quelque chose comme ça est "cher", cela devrait être un drapeau rouge. – RedFilter
Cela ne répond pas à votre question, mais j'ai une suggestion pour améliorer les performances dans ce scénario. La création et la fermeture de connexions peuvent être plus coûteuses que d'habitude lorsque vous travaillez avec une base de données depuis un emplacement distant. Si vous ne l'avez pas déjà fait, ajoutez une logique qui n'ouvre qu'une seule connexion db par requête de page. L'idée serait d'utiliser une sorte de connexion globale qui s'ouvre automatiquement lorsque la première requête est faite et se ferme automatiquement lorsque l'événement Page.Unload est appelé. –