2010-10-15 9 views
1

J'ai un contrôle utilisateur qui récupère des données à partir d'une base de données. Ça prend beaucoup de temps. En outre, la vitesse de mon application Web est devenue lente. Que dois-je faire pour accélérer le chargement de la page?chargement de page prend beaucoup de temps asp.net

+1

s'il vous plaît? Il pourrait y avoir plusieurs raisons. Par exemple ne pas disposer des connexions. – shahkalpesh

+0

Veuillez en dire plus sur l'architecture que vous utilisez (wcf, ou sqldatasources, ...). Avez-vous également essayé d'utiliser SQL profiler pour mesurer si la lenteur est dans la requête et peut-être pas dans la page elle-même? – XIII

+0

Le sujet de l'optimisation est beaucoup trop large pour donner une réponse raisonnable. – Will

Répondre

0

Je vais répondre de manière générale.

  1. Si vous ne récupèrera que les données avec des calculs de sortie, puis:
    DataBase Partie
    un. Optimisez votre requête sql, assurez-vous d'utiliser les bons index sur la base de données.
    b. Ne chargez pas plus que les données que vous avez gagné à afficher et faites la pagination.
    c. Si vous extrayez des données d'un trop grand nombre de tables en même temps, créez une nouvelle table "plate" et pré-rendez vos résultats sur une base régulière planifiée sur un thread d'arrière-plan.

    page Partie
    un. Pendant que vous chargez les données, montrez-les imidiatle et ne les tamponnez pas, et de temps en temps faites un vidage de la réponse. Si vous récupérez des données avec des calculs, effectuez les calculs sur un thread d'arrière-plan avant de les afficher sur une base planifiée, placez-les sur une autre table plate et affichez cette table.

Par exemple, comment afficher les données pendant que vous les obtenez ....

<% 
    int KathePoteFlush = 1; 
    object Data; 
    While(GetNextData(Data)) 
    { 
     if (20 % KathePoteFlush++ == 0) 
      Response.Flush(); 

     Response.Write(RenderMyTableData(....data....));  
    }; 
%> 
code
Questions connexes