Migliorare la query LINQ db4o
-
20-09-2019 - |
Domanda
Ho un problema con questa query 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 );
Come si può vedere, ogni PersistedCommit
contiene un Collection<int>
chiamato FileIDs
che lo collega ai suoi PersistedFileInfo
s. Voglio selezionare tutti i commit precedenti di una specifica FileInfo (che è identificata dal suo percorso).
Ho circa 800 PersistedFileInfo
s e 10 PersistedCommit
s. La query richiede circa 1,5 secondi - che è nel mio opition troppo tempo. La contructor del Commit
-oggetto salva solo le due date argomenti -. Quindi non c'è timeloss, qui
La mia domanda:
questa query può essere riscritta per eseguire meglio -? o è un problema db4o (utilizzare una query SODA invece)
Soluzione
Vi prego di controllare se il vostro NQ è infatti ottimizzato ( vedi qui ). Se no allora la cosa migliore è quella di tradurre questo in SODA interrogare se stessi.
Goran