改进db4o linq查询

时间:2009-09-01 17:07:03

标签: linq performance db4o

我遇到了这个linq查询的问题:

from PersistedFileInfo fi in m_Database
from PersistedCommit commit in m_Database
where commit.FileIDs.Contains( fi.ID )
where fi.Path == <given path>
select new Commit( m_Storage, commit );

正如您所看到的,每个PersistedCommit都包含一个名为Collection<int>的{​​{1}},它将FileIDs连接到PersistedFileInfo。我想选择特定fileInfo的所有先前提交(由其路径标识)。

我有大约800 PersistedFileInfo和10 PersistedCommit s。查询大约需要1.5秒 - 这在我的选择中太长了。 Commit - 对象的构造函数只保存两个给定的参数 - 所以这里没有时间损失。

我的问题:
可以重写此查询以更好地执行 - 或者它是db4o问题(改为使用SODA查询)?

1 个答案:

答案 0 :(得分:2)

请检查您的NQ是否确实已经过优化(see here)。如果没有,那么您最好的选择是将其转换为SODA查询。

戈兰