2010-10-15 4 views
1

У меня есть пользовательский элемент управления, который извлекает данные из базы данных. Это занимает много времени. Также скорость моего веб-приложения стала медленной. Что делать, чтобы ускорить загрузку страницы?страница загрузка занимает много времени asp.net

+1

код, пожалуйста? Могло быть несколько причин. Напр. не удаляя соединения. – shahkalpesh

+0

Просьба подробно рассказать об архитектуре, которую вы используете (wcf, или sqldatasources, ...). Также вы пытались использовать профилировщик SQL для измерения, если медленность находится в запросе и, возможно, не на самой странице? – XIII

+0

Тема оптимизации слишком широка, чтобы дать какой-либо разумный ответ. – Will

ответ

0

Я отвечу в общем.

  1. Если только извлекает данные с расчетами вне, тогда:
    DataBase Часть
    . Оптимизируйте свой SQL-запрос, убедитесь, что вы используете нужные индексы в базе данных.
    b. Не загружайте больше данных, которые вы выиграли для показа, и выполняйте пейджинг.
    c. Если вы одновременно извлекаете данные из слишком большого количества таблиц, создайте новую «плоскую» таблицу и представьте свои результаты там на запланированной регулярной основе в фоновом потоке.

    Page Часть
    . Пока вы загружаете данные, показываете им imidiatle и не буферизируете их, а время от времени делаете флеш к ответу.

  2. Если вы делаете данные с помощью вычислений, выполните вычисления в фоновом потоке, прежде чем показывать их на плановой основе, поместите их на другой плоский стол и покажите эту таблицу.

Например, как показывают данные, в то время как вы получаете их ....

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

     Response.Write(RenderMyTableData(....data....));  
    }; 
%>