2012-12-31 32 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中使用了一個表變量來以所需的排序順序存儲記錄的關鍵字,並使用給定的起始索引和頁面大小返回子集。它對我來說工作非常快。 –