загрузка страницы занимает много времени asp.net

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


person Mohan Sharma    schedule 15.10.2010    source источник
comment
Код пожалуйста? Причин может быть несколько. Например, не избавляясь от соединений.   -  person shahkalpeshp    schedule 15.10.2010
comment
Пожалуйста, расскажите подробнее об используемой архитектуре (wcf или sqldatasources,...). Также вы пытались использовать профилировщик SQL для измерения медлительности в запросе и, возможно, не в самой странице?   -  person Kris van der Mast    schedule 15.10.2010
comment
Тема оптимизации слишком широка, чтобы дать какой-либо разумный ответ.   -  person    schedule 15.10.2010


Ответы (1)


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

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

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

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

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

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

        Response.Write(RenderMyTableData(....data....));    
    };
%>
person Aristos    schedule 15.10.2010