2009-09-01 51 views
2

我有一個問題,這個LINQ查詢:提高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>FileIDs它連接到其PersistedFileInfo秒。我想選擇所有以前提交的特定fileInfo(由其路徑標識)。

我有大約800 PersistedFileInfo s和10 PersistedCommit s。查詢大約需要1.5秒 - 這在我的選擇中太長了。對象Commit的構造函數只保存兩個給定的參數 - 所以在這裏沒有時間損耗。

我的問題:
這個查詢可以重寫執行得更好嗎?還是db4o問題(改用SODA查詢)?

回答

2

請檢查您的NQ是否確實優化(see here)。如果沒有,那麼你最好的選擇就是把它轉換成你自己的SODA查詢。

Goran