首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用LINQ直接查询SQL (字典表)在内存中查询DataSet -性能

使用LINQ直接查询SQL (字典表)在内存中查询DataSet -性能
EN

Stack Overflow用户
提问于 2013-04-12 13:24:53
回答 1查看 1.7K关注 0票数 1

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

设想一个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.您的更好想法

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-25 14:42:41

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

因此,有一次,我预加载了大约4k记录到字典,并进行了100 k循环,结果检索数据00:00:00.950095

第二次执行相同的100 k循环,每次询问数据库,结果如下:

看来选择很容易。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15972591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档