Mejorar la consulta LINQ db4o
-
20-09-2019 - |
Pregunta
Tengo un problema con esta consulta 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 );
Como se puede ver, cada PersistedCommit
contiene una llamada Collection<int>
FileIDs
que la une a sus PersistedFileInfo
s. Quiero seleccionar todos los envíos anteriores de un fileinfo específica (que se identifica por su ruta).
Tengo cerca de 800 PersistedFileInfo
s y 10 PersistedCommit
s. La consulta tarda aproximadamente 1,5 segundos - que está en mis Opition demasiado tiempo. El contructor de la Commit
a objetos guarda sólo los dos argumentos dados -. Lo que no hay timeloss, aquí
Mi pregunta:
Esta consulta puede ser reescrita para un mejor desempeño - o se trata de un problema db4o (SODA utilizar una consulta en su lugar)
Solución
Por favor, compruebe si su NQ es, en efecto optimizado ( ver aquí ). Si no, entonces lo mejor es traducir esto en SODA consultar a sí mismo.
Goran