在Radgrid抛出超时错误中绑定800000条记录

时间:2011-10-10 14:14:50

标签: asp.net sharepoint-2010 sharepoint-2007

我使用自定义分页在radgrid中加载800,000条记录,这是抛出超时错误。如何让Radgrid处理大量(800,000)记录,这是我的要求。但我能够在radgrid中绑定200,000条记录而不会出现任何超时或性能问题。所以,如果有人知道,请向我建议一些选择。

以下是我在代码中尝试过的步骤:(请注意:我在sharepoint 2007以及2010中使用RadGrid

  1. 我正在使用自定义分页,并将虚拟项目数设置为800,000,并将pagesize设置为50
  2. 我在viewstate中存储了800,000条记录,没有绑定radgrid中的所有800,000条记录,我在加载radgrid时只绑定了50条记录
  3. 如果我在radgrid中更改分页,基于页面索引,我从viewstate获取50条记录并将其绑定在radgrid中(例如:当前pageindex为5意味着我占用了201到250)
  4. Telerik支持小组说,不要使用viewstate,所以我将所有800,000条记录存储在属性包中,即使它浪费时间错误
  5. 请告诉我我需要做什么?

1 个答案:

答案 0 :(得分:2)

它可能超时,因为你在ViewState中放置了80万条记录(它们必须被序列化并通过网络发送给客户端。疯狂!)。我可以想象你的页面有多“小”。

我不会在ViewState中甚至在Cache或Session中放置80万条记录。如果你想避免往返数据库并检测你是否有记录在内存中,你可以放一个较小的数量。如果没有,你可以得到下一个大块(比如500)等等。

如果你放置较小的块,最好把它放在Cache(或Session)中,然后从那里获取它们而不是ViewState。对于InProc模式下的Session,您不必担心数据的序列化;类似于Cache。