0

テーブルには 1,000 万件のレコードがあります。linq クエリを使用してレコードをフェッチしようとしていますが、これによりパフォーマンスの問題が発生します。遅延やパフォーマンスの問題なしにデータを取得するにはどうすればよいですか?

4

1 に答える 1

1

Enumerable.SkipEnumerable.Takeを使用して、 LINQ を使用してデータを取得するためのページングを実装できます。アクセスを高速化するには、データの現在のインデックス (存在する場合)に再度アクセスし、必要なデータ/列のみを読み込んでみてください。

表示されることがあります: Linq を使用した効果的なページング (サンプル コード) - コード プロジェクト

データベース内のレコードのみを検索し、それらのレコードをいくつか選択するだけで、パフォーマンスが心配な場合は、データベース サーバーに大きく依存します。データ ソースに対する LINQ クエリは、基になるクエリ言語に変換されます。下敷きのデータ ソースが SQL Server の場合、LINQ は SQL に変換されます。LINQPadまたは Visual Studioを介して生成された SQL を取得し、クエリ実行プランを見て最適化が必要かどうかを確認できます。LINQ クエリで検索する列に対してインデックスを設定することもできます。これにより、1,000 万行からのレコード選択が大幅に改善されます。

于 2013-02-04T04:36:37.480 に答える