1

我还没有找到确切的答案,所以:

想象一个 3 列的字典表,其结构如下:

整数 | 字符串1 | string2(其中 int+string1 是 pk)

表有超过 20k 行,它的查询非常广泛,pk以返回string2

这里最好的方法是什么?

1.直接LINQ DB请求

亲:通过PK查询确实非常快

缺点:每秒可能有几百次调用数据库服务器

2.预加载数据一次到DataTable对象

pro:所有数据都在本地.net内存中(无需每次都去db)

缺点:使用 LINQ 需要调用AsEnumerable()返回DataTable可枚举对象DataSource的 LINQ 查询。在这里对对象的 LINQ 查询比调用 DB 更有效吗?这里使用PK约束吗?

3.将所有表预加载到Dictionary<string, string>keyint.ToString()+string1和value所在的位置string2

pro:始终使用 PK 约束,字典直接以正确的值响应

缺点:是比1好还是2好?

4.你更好的主意

我的好奇心正在等待答案...

4

1 回答 1

3

最后我有时间写了一个简单的测试应用程序,但使用的是真实数据,所以结果在这种情况下非常相关。

所以 - 一旦我将大约 4k 条记录预加载到 Dictionary 并进行了 100k 循环,结果是检索数据00:00:00.950095

第二次我做了同样的 100k 循环,每次都询问数据库,结果如下:00:02:32.81...

似乎选择很容易。

于 2013-06-25T14:42:41.813 回答