我还没有找到确切的答案,所以:
设想一个3列字典表的结构如下:
int / string1 / string2 (其中int+string1为pk)
表有超过20k行,它的pk对表进行了非常广泛的查询以返回string2值
这里最好的方法是什么?
1.直接LINQ请求
pro: PK的查询,它确实非常快
缺点:每秒可能有几百次对db服务器的调用
2.预加载数据一次到DataTable对象
pro:所有数据都在本地.net内存中(无需每次访问数据库)
缺点: LINQ的用法要求调用DataTable上的AsEnumerable(),后者将可枚举对象作为DataSource返回给LINQ查询。这里对对象的LINQ查询比调用DB更有效吗?这里使用PK约束吗?
3.将所有表预加载到Dictionary<string, string>,其中键是int.ToString()+string1和值string2。
pro:总是使用 PK约束,字典直接响应正确的值
缺点:比1或2好吗?
4.您的更好想法
我的好奇心在等待答案..。
发布于 2013-06-25 14:42:41
最后,我有时间编写一个简单的测试应用程序,但是使用真实的数据,所以结果在这种情况下是非常相关的。
因此,有一次,我预加载了大约4k记录到字典,并进行了100 k循环,结果检索数据00:00:00.950095!
第二次执行相同的100 k循环,每次询问数据库,结果如下:
看来选择很容易。
https://stackoverflow.com/questions/15972591
复制相似问题