문제
이 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
a Collection<int>
~라고 불리는 FileIDs
그것에 연결합니다 PersistedFileInfo
에스. 특정 fileInfo (경로에 의해 식별 됨)의 모든 이전 커밋을 선택하고 싶습니다.
나는 약 800이 있습니다 PersistedFileInfo
S와 10 PersistedCommit
에스. 쿼리는 약 1.5 초가 소요됩니다. 의무자 Commit
-Object는 주어진 두 가지 인수 만 저장합니다. 따라서 여기에는 Timeloss가 없습니다.
내 질문:
이 쿼리를 더 잘 수행하도록 다시 작성할 수 있습니까?
해결책
NQ가 실제로 최적화되었는지 확인하십시오 (여기를 봐). 그렇지 않다면 가장 좋은 방법은 이것을 소다 쿼리로 직접 번역하는 것입니다.
고란
제휴하지 않습니다 StackOverflow