2012-12-31 23 views
1

我目前工作的项目需要检索/从大量的数据,流程如下搜索: -推荐策略ASP.NET页面与大数据,以及可选的排序

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

使用一个用户控件和DataBinded使用中继器的数据被当前显示,将通过一个UpdatePanel与下一个,前一个按钮来更新,etc.It优选但不限于使用EF5。 0,我打开其他选项(例如SqlDataReader)并将其手动转换回成员对象。

我当前的解决方案,通过使用页号码主叫与跳过的实体,即

成员= context.Members.Where(这里的条件).Skip(页号*大小)。取(尺寸);

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

+0

什么问题? – Alexan

+0

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

回答

2

我用,而不是LINQ查询的存储过程,得到了真正出色的表现。这可以节省性能,因为查询元数据生成/ sql转换。如果您要返回一个较大的结果集,禁用更改跟踪也是一个不错的选择。

+0

纠正我,如果我错了,这是否意味着使用ROWNUMBER()并传递页码,大小作为参数? – cherhan

+1

是的;我在SQL Server中使用了一个表变量来以所需的排序顺序存储记录的关键字,并使用给定的起始索引和页面大小返回子集。它对我来说工作非常快。 –