具有大数据的ASP.NET分页的推荐策略,以及可选的排序

时间:2012-12-31 01:20:08

标签: asp.net ado.net paging

我目前正在工作的项目需要从大量数据中检索/搜索,流程如下: -

  1. 输入关键字并从约500,000名成员中搜索
  2. 仅检索前6名成员。
  3. 允许根据成员国家/地区或性别进行排序。 要求:使用EF5.0
  4. 当前使用UserControl显示数据,使用Repeater通过DataBinded显示数据,将通过UpdatePanel使用下一个,上一个按钮等进行更新。优选但不限于使用EF5.0,我打开其他选项(例如SqlDataReader)并手动将其强制转换回member对象。

    我目前的解决方案是使用页码来跳过实体,即

    members = context.Members.Where(条件在这里).Skip(页码*大小).Take(size);

    我的问题是:我的策略是工业/常用方法吗?任何具有类似经验的人都可以在性能/优化方面与我分享,还有其他更好的方法吗?

2 个答案:

答案 0 :(得分:2)

我使用存储过程而不是LINQ查询获得了非常好的性能。由于查询元数据生成/ sql转换,这可以节省性能。如果您要返回较大的结果集,则禁用更改跟踪也是一个不错的选择。

答案 1 :(得分:1)

我正在使用数据库分页,它使用ROWCOUNT在这里检查http://www.4guysfromrolla.com/webtech/042606-1.shtml,它提供了200000条记录,包括排序和分页的非常好的性能。