Linq to SQL:使用Sql Server Compact Edition优化查询

时间:2009-06-11 08:11:50

标签: performance linq-to-sql optimization memory sql-server-ce

我一直在使用Linq来对抗Sql Server CE。

数据库是只读的,所以我可以有几个假设。

为了避免访问文件系统,我最初的方法是将所需的实体缓存到应用程序内存并使用linq来对抗它们。

虽然它适用于有限的查询,但在需要的时候直接使用Linq to SQL优于Linq to Objects。

回到起点,我想优化我的表现,我现在的想法是强制将整个文件加载到RAM中,并使用Linq to SQL来反对它。

有什么想法吗?还有更多想法吗?

爱丽儿

2 个答案:

答案 0 :(得分:1)

看起来您的问题是sql索引/外键性能与集合迭代器性能。

Linq to Datasets确实提供了一种保留关系的方法(更具体地说,ADO.net数据集具有关系集合),并且可以强制执行主键,外键和唯一约束。因此,它们的连接性能应该类似于Linq to SQL,但将在内存中运行。

根据我对lite sql实现的理解,事务可以对性能产生很大影响,所以只需用

开始连接
BEGIN TRANSACTION
如果您可以为所有查询保持连接打开,

可能会产生重大影响。基准测试可能是解决这个问题的唯一可靠方法。

答案 1 :(得分:0)

您是否尝试过Linq to DataSet

您可以在内存中加载所有内容,并且可以使用Linq查询

我不知道联接是否会像你想要的那样工作