Pergunta

Eu tive um problema com 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 você pode ver, todo PersistedCommit contém a Collection<int> chamado FileIDs que o conecta ao seu PersistedFileInfos. Quero selecionar todos os compromissos anteriores de um FileInfo específico (que é identificado por seu caminho).

Eu tenho cerca de 800 PersistedFileInfos e 10 PersistedCommits. A consulta leva cerca de 1,5 segundos - que está na minha opição por muito tempo. O Contratado do Commit-Object salva apenas os dois argumentos dados - então não há timeloss aqui.

Minha pergunta:
Essa consulta pode ser reescrita para ter um desempenho melhor - ou é um problema de db4o (use uma consulta de refrigerante)?

Foi útil?

Solução

Verifique se o seu NQ é realmente otimizado (Veja aqui). Caso contrário, sua melhor aposta é traduzir isso em uma consulta de refrigerante.

Goran

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top