1

私が現在取り組んでいるプロジェクトでは、大量のデータから取得/検索する必要があります。フローは次のとおりです。

  1. 約50万人の会員からキーワードを入力して検索
  2. 上位 6 メンバーのみを取得します。
  3. 加盟国または性別に基づく並べ替えを許可します。要件: EF5.0 を使用する

データは現在 UserControl を使用して表示され、DataBinded は Repeater を使用しており、次へ、前へのボタンなどを使用して UpdatePanel を通じて更新されます。手動でメンバー オブジェクトにキャストし直します。

ページ番号を使用してスキップしてエンティティを呼び出す現在のソリューション、つまり

members = context.Members.Where( ここに条件 ).Skip(ページ番号 * サイズ).Take(サイズ);

私の質問は次のとおりです。私の戦略は、それを行うための産業的/一般的な方法ですか? 同様の経験を持つ人なら誰でも、パフォーマンス/最適化に関して私と共有できます。他に良い方法はありますか?

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 に答える