この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
が含まれています。特定のfileInfo(パスで識別される)の以前のすべてのコミットを選択したい。Collection<int>
FileIDs
PersistedFileInfo
私は約800PersistedFileInfo
秒と10PersistedCommit
秒を持っています。クエリには約1.5秒かかります。これは私の意見では長すぎます。Commit
-objectのコンストラクターは、指定された2つの引数のみを保存するため、ここではタイムロスはありません。
私の質問:
このクエリを書き直してパフォーマンスを向上させることはできますか?それともdb4oの問題ですか(代わりにSODAクエリを使用してください)?