Привязка 800000 записей в Radgrid ошибка таймаута - PullRequest
0 голосов
/ 10 октября 2011

Я загружаю 800 000 записей в Radgrid с пользовательской подкачкой страниц, это выдает ошибку тайм-аута. Как мне заставить Radgrid работать с большим количеством (800 000) записей, это мое требование. но я могу связать 200 000 записей в Radgrid без таймаута или проблем с производительностью. Так что, если кто-нибудь знает, пожалуйста, предложите мне несколько вариантов.

Это следующие шаги, которые я попробовал в своем коде: ( Пожалуйста, обратите внимание: я использую RadGrid в sharepoint 2007, а также 2010 )

  1. Я использую пользовательский пейджинг и устанавливаю количество виртуальных элементов 800 000, а размер страницы 50
  2. Я храню 800 000 записей в viewstate, не связывая все 800 000 записей в radgrid, я связываю только 50 записей на момент загрузки radgrid
  3. Если я изменяю подкачку в Radgrid, основываясь на индексе страницы, я получаю 50 записей из viewstate и связываю их в Radgrid (например, текущий индекс страницы равен 5, значит, я взял 201 - 250)
  4. Служба поддержки Telerik говорит, что не используйте viewstate, поэтому я храню все 800 000 записей в пакете свойств, даже если он выбрасывает ошибку времени ожидания

скажите, пожалуйста, что мне нужно сделать?

1 Ответ

2 голосов
/ 10 октября 2011

Вероятно, истекло время, потому что вы помещаете 800 тысяч записей в ViewState (они должны быть сериализованы и отправлены по проводам клиенту. Безумно!). Я могу представить, насколько «маленькая» ваша страница.

Я бы не поместил 800 тысяч записей в ViewState или даже в Cache или Session. Вы можете положить меньшую сумму, если хотите избежать обращения к базе данных и определить, есть ли у вас записи в памяти или нет. Если нет, вы можете получить следующий большой кусок (скажем, 500) и так далее.

Если вы помещаете более мелкие блоки, вам лучше поместить их в Cache (или Session) и получать их оттуда вместо ViewState. В случае сеанса в режиме InProc вам не придется беспокоиться о сериализации данных; аналогично для Cache.

...