我一直在使用Linq来对抗Sql Server CE。
数据库是只读的,所以我可以有几个假设。
为了避免访问文件系统,我最初的方法是将所需的实体缓存到应用程序内存并使用linq来对抗它们。
虽然它适用于有限的查询,但在需要的时候直接使用Linq to SQL优于Linq to Objects。
回到起点,我想优化我的表现,我现在的想法是强制将整个文件加载到RAM中,并使用Linq to SQL来反对它。
有什么想法吗?还有更多想法吗?
爱丽儿
答案 0 :(得分:1)
看起来您的问题是sql索引/外键性能与集合迭代器性能。
Linq to Datasets确实提供了一种保留关系的方法(更具体地说,ADO.net数据集具有关系集合),并且可以强制执行主键,外键和唯一约束。因此,它们的连接性能应该类似于Linq to SQL,但将在内存中运行。
根据我对lite sql实现的理解,事务可以对性能产生很大影响,所以只需用
开始连接BEGIN TRANSACTION
如果您可以为所有查询保持连接打开,可能会产生重大影响。基准测试可能是解决这个问题的唯一可靠方法。
答案 1 :(得分:0)