Verbessern Sie db4o Linq-Abfrage
-
20-09-2019 - |
Frage
Ich habe ein Problem mit dieser Linq-Abfrage:
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 );
Wie Sie sehen können, enthält jedes PersistedCommit
eine Collection<int>
genannt FileIDs
, die sie ihren PersistedFileInfo
s verbindet. Ich möchte alle vorherigen Commits eines bestimmten auszuwählen fileinfo (die durch ihren Pfad identifiziert wird).
Ich habe etwa 800 PersistedFileInfo
s und 10 PersistedCommit
s. Die Abfrage dauert ca. 1,5 Sekunden - die viel zu lange in meiner opition ist. Der contructor des Commit
-Objekts speichert nur die beiden Argumente gegeben -. So gibt es keine timeloss, hier
Meine Frage:
Kann diese Abfrage neu geschrieben werden, bessere Leistungen zu erbringen - oder ist es ein Problem db4o (statt eine SODA-Abfrage verwenden)
Lösung
Bitte überprüfen Sie, ob Ihre NQ tatsächlich optimiert wird ( hier sehen ). Wenn nicht, dann ist die beste Wahl, sich diese in SODA Abfrage zu übersetzen.
Goran