2

我遇到了这个 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>FileIDs其连接到其PersistedFileInfos 的调用。我想选择特定 fileInfo (由其路径标识)的所有先前提交。

我有大约 800PersistedFileInfo秒和 10PersistedCommit秒。查询大约需要 1.5 秒——我认为这太长了。-object的构造Commit函数只保存两个给定的参数 - 所以这里没有时间损失。

我的问题:
能否重写此查询以更好地执行 - 还是 db4o 问题(改用 SODA 查询)?

4

1 回答 1

2

请检查您的 NQ 是否确实经过优化(请参见此处)。如果不是,那么您最好的办法是自己将其转换为 SODA 查询。

戈兰

于 2009-10-13T10:50:59.270 回答