1

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

  1. 输入关键字并从大约 500,000 名成员中搜索
  2. 仅检索前 6 个成员。
  3. 允许根据成员国或性别进行排序。要求:使用EF5.0

数据当前使用 UserControl 显示,DataBinded 使用 Repeater,将通过带有下一个、上一个按钮等的 UpdatePanel 进行更新。最好但不限于使用 EF5.0,我对其他选项开放(例如 SqlDataReader)并手动将其转换回成员对象。

我当前的解决方案通过使用页码调用带有跳过的实体,即

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

我的问题是:我的策略是工业/通用的方法吗?有类似经验的朋友可以和我分享一下性能/优化方面,有没有其他更好的方法呢?

4

2 回答 2

2

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

于 2012-12-31T02:16:44.913 回答
1

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

于 2013-04-04T10:45:46.797 回答