J'ai une application Web ASP.NET (.NET 2008) utilisant MS SQL Server 2005. Je veux augmenter les performances du site web. Est-ce que quelqu'un sait d'un article contenant des étapes pour le faire, étape par étape, dans SQL (index, etc.), et dans le code?Comment augmenter les performances de mon application Web?
Répondre
Je pense que le mieux que nous pouvons faire à partir d'ici est de vous donner quelques conseils:
- requête moins de données à partir du serveur SQL (mise en cache, les filtres de requête appropriés)
- écrire de meilleures requêtes (indexation, rejoint, pagination, etc.)
- minimiser les blocages inappropriés tels que des serrures entre les différentes demandes
- assurez-vous d'état de session n'a pas explosé en taille
- utiliser plus métal/métal plus
- utilisez le code approprié looping etc
Mais au stress; de ici tout est conjecture. Vous devez profil pour trouver la zone générale pour le suckage, puis profil plus pour isoler le spécifique zone (s); mais commencer par regarder:
- trace sql entre serveur web et réseau sql-server
- de trace entre serveur Web et le client (les deux directions)
- cache/serveurs d'état si votre CPU
- utilisation de la mémoire sur le serveur Web
Je pense d'abord que vous devez trouver vos goulots d'étranglement et ensuite essayer de les améliorer.
Cela vous aide à effectuer exactement où vous avez un problème de serios.
En outre, vous devez améliorer votre connexion à la base de données. Par exemple, utiliser un motif Lazy, Singletone et également créer une requête Batch au lieu de requêtes individuelles. Il vous aide à diminuer la connexion DB.
Vérifiez votre cache et les structures de boucle appropriées.
une autre chose est d'utiliser des types appropriés, Parexemple si vous avez besoin int donot créer un long et etc
à la fin ypu peut utiliser un Profiler (spécialement dans SQL) andcheckif vos requêtes mises en œuvre aussi bien que possible.
L'optimisation des performances est un processus très spécifique. Je ne connais aucun article traitant directement de la manière d'y parvenir, mais je peux vous donner un bref aperçu des étapes à suivre lorsque je dois améliorer les performances d'une application/d'un site Web.
Profil.
Commencez par collecter des données de performance. À la fin du processus de réglage, vous aurez besoin de quelques chiffres pour comparer pour prouver que vous avez fait une différence.Cela signifie que vous devez choisir des processus spécifiques que vous surveillez et enregistrez leurs performances et leur débit. Par exemple, sur votre site, vous pouvez enregistrer la durée d'une connexion. Vous devez garder cela très étroit. Choisissez une action spécifique que vous voulez enregistrer et chronométrer. (Utilisez un outil pour effectuer le chronométrage, ou mettez du code Stopwatch dans votre application pour signaler les temps. Aussi, ne l'exécutez pas une seule fois, exécutez-le plusieurs fois, essayez de vous assurer que tout l'environnement est configuré pour que vous puissiez dupliquer Essayez de vous rapprocher le plus possible de votre environnement de production: assurez-vous que votre code est compilé en mode édition et qu'il s'exécute sur de vrais serveurs distincts, pas uniquement sur une seule boîte, etc.
instrument.
maintenant, vous savez ce que l'action que vous voulez améliorer, et vous avez un temps cible à battre, vous pouvez instrumenter votre code. Cela signifie l'injection (manuellement ou automatiquement) supplémentaire code qui chronomètre chaque appel de méthode, ou chaque ligne et enregistre les heures et/ou l'utilisation de la mémoire dans la pile d'appels.
Il y a beaucoup d'outils qui peuvent vous aider et automatiser certains d'entre eux. (Microsoft's CLR profiler (gratuit), Redgate - Ants (commercial), les éditions supérieures de studio visuel ont des choses intégrées, et loads more) Mais vous n'avez pas besoin d'utiliser des outils automatiques, il est parfaitement acceptable de simplement utiliser la classe Stopwatch pour chronométrer chaque bloc de votre code. Ce que vous cherchez est un goulot de bouteille. Le plus probable est que vous trouverez une grande partie du temps total consacré à un tout petit peu de code.
Réglage.
Maintenant, vous avez des données de synchronisation, vous pouvez commencer à accorder.
Il y a deux approches à considérer ici. Premièrement, prenez une perspective globale. Considérez si vous avez besoin de re concevoir la pile d'appels entière. Répétez-vous quelque chose inutilement? Ou faites-vous juste quelque chose dont vous n'avez pas besoin? Deuxièmement, maintenant vous avez une idée de l'endroit où votre goulot de bouteille est, vous pouvez essayer et trouver des moyens d'améliorer ce peu de code. Je ne peux pas donner beaucoup de conseils ici, car cela dépend du goulot de votre bouteille, mais il suffit de chercher à l'optimiser. Peut-être avez-vous besoin de mettre en cache des données pour ne pas avoir à faire deux fois la boucle. Ou lotez les appels SQL afin que vous puissiez en faire un seul. Ou resserrez vos filtres de requête pour que vous renvoyiez moins de données.
Re-profile.
C'est l'étape la plus importante que les gens oublient souvent. Une fois que vous avez réglé votre code, vous devez absolument le re-profiler dans le même environnement que celui dans lequel vous avez exécuté votre profilage initial. Il est très courant de faire des ajustements mineurs qui pourraient améliorer les performances et finir par le dégrader à cause de une façon inconnue que le CLR gère quelque chose. Ceci est beaucoup plus commun dans les langues gérées parce que vous ne savez souvent pas exactement ce qui se passe sous les couvertures.
Maintenant, répétez simplement si nécessaire.
Si vous êtes susceptible d'optimiser les performances, je trouve qu'il est bon d'avoir toute une série de tests de performance automatisés que je peux exécuter pour vérifier les performances et le débit de différentes activités. De cette façon, je peux les exécuter avec chaque version et enregistrer les changements de performance à chaque version.Cela signifie aussi que je peux vérifier que, après une session de réglage des performances, je sais que je n'ai pas aggravé la performance d'un autre domaine.
Lorsque vous effectuez un profilage, ne pensez pas toujours au temps nécessaire pour exécuter une seule action. Envisagez également le profilage sous charge, avec beaucoup d'utilisateurs connectés. Parfois, les applications fonctionnent très bien lorsqu'un seul utilisateur est connecté, mais quand elles touchent un certain nombre d'utilisateurs, tout s'arrête brusquement. Peut-être parce qu'ils passent soudainement plus de temps à changer de contexte ou à échanger de la mémoire sur le disque. Si c'est le débit que vous voulez améliorer, vous devez déterminer ce qui cause la limite de débit.
Enfin. Consultez cet article MSDN énorme sur Improving .NET Application Performance and Scalability. Plus précisément, vous voudrez peut-être regarder chapter 6 et chapter 17.
Merci beaucoup, simon, je vous lis répondre avec soin :) – RMohammed
- 1. Comment mesurer les performances d'une application Web?
- 2. Augmenter les performances de DevEx WPF Grid
- 3. Comment augmenter les performances du défilement raster sur Mac?
- 4. StrToFloat augmenter erreur dans mon application pas dans toute application
- 5. comment augmenter la vitesse de mon exécution
- 6. comment optimiser les performances d'une application wpf
- 7. Réduire l'empreinte mémoire des rails Mongrel et augmenter les performances?
- 8. Comment puis-je tester les performances de mon site Web ASP.NET MVC?
- 9. Comment accélérer les performances de Telerik Ajax?
- 10. performances des services web
- 11. Comment faire pour augmenter les performances de la base de données SQL Server?
- 12. Afficher l'image de mon serveur Web à mon application iPhone
- 13. Envoyez un mail de mon application web
- 14. Comment puis-je augmenter le nombre d'utilisateurs de mon système?
- 15. Comment diffuser des vidéos de mon application sur le Web?
- 16. optimiser les performances côté client du service Web?
- 17. Comment avoir une zone de texte dans mon application Web?
- 18. Comment créer un widget de mon application Web
- 19. Comment améliorer les performances du service Web WCF?
- 20. Quel est un bon moyen de mesurer les performances et l'utilisation de mon serveur web?
- 21. Eclipse continue d'exécuter mon ancienne application web
- 22. Certaines commandes bloquent mon application web Ruby
- 23. comment limiter le téléchargement du système de fichiers via le navigateur uniquement via mon application web
- 24. Dois-je reconstruire mon site Web PHP avec une base de documents afin d'améliorer les performances?
- 25. .net service web hébergé dans mon application
- 26. Comment créer une intégration LDAP pour mon application Web?
- 27. Comment consommer un service Web dans mon application
- 28. Comment puis-je recevoir des SMS via mon application web?
- 29. linq: Performances SQL sur les applications Web fortement chargées
- 30. Comment augmenter les étiquettes à l'exécution
Je pense que dans la performance, il est vraiment important de savoir où vous êtes lent, ou dans d'autres mots, où vous pouvez gagner plus de performance. Avez-vous des problèmes avec js, asp.net, sql server? Ce sont des mondes différents et ont besoin de connaissances différentes. –
ok, codeka et pablocastilla, commençons avec sql server car je pense que le principal problème de lent est en SQL – RMohammed