1

私はまだ正確な答えを見つけていないので、

次のように構成された 3 列のディクショナリ テーブルを想像してください。

整数 | 文字列 1 | string2 (int+string1 は pk)

テーブルには 20,000 行を超える行があり、値pkを返すために非常に広範囲にクエリされますstring2

ここで最善のアプローチは何でしょうか?

1.直接 LINQ DB リクエスト

長所:確かに非常に高速なPKによるクエリ

短所:データベースサーバーへの1秒あたり数百回の呼び出し

2. DataTable オブジェクトにデータを 1 回プリロードする

プロ:すべてのデータはローカルの .net メモリにあります (毎回データベースに移動する必要はありません)

短所: LINQを使用するには、LINQクエリのように列挙可能なオブジェクトを返す呼び出しが必要AsEnumerable()です。オブジェクトに対する LINQ クエリは、DB を呼び出すよりも効率的ですか? ここでPK制約が使用されていますか?DataTableDataSource

3.Dictionary<string, string>すべてのテーブルをキーint.ToString()+string1と値の場所にプリロードしますstring2

pro: PK 制約が常に使用され、辞書は正しい値で直接応答します

短所: 1または2よりも優れていますか?

4.あなたのより良いアイデア

私の大きな好奇心は答えを待っています...

4

1 に答える 1