.NET Framework 버전 4에서 Entity Framework Code-First를 사용하는 매우 간단한 쿼리와 관련된 정말 이상한 성능이 표시됩니다. LINQ2Entities 쿼리는 다음과 같습니다.
context.MyTables.Where(m => m.SomeStringProp == stringVar);
실행하는 데 3000 밀리 초 이상이 걸립니다. 생성 된 SQL은 매우 간단합니다.
SELECT [Extent1].[ID], [Extent1].[SomeStringProp], [Extent1].[SomeOtherProp],
...
FROM [MyTable] as [Extent1]
WHERE [Extent1].[SomeStringProp] = '1234567890'
이 쿼리는 Management Studio를 통해 실행될 때 거의 즉시 실행됩니다. SqlQuery 함수를 사용하도록 C # 코드를 변경하면 5-10 밀리 초 안에 실행됩니다.
context.MyTables.SqlQuery("SELECT [Extent1].[ID] ... WHERE [Extent1].[SomeStringProp] = @param", stringVar);
따라서 정확히 동일한 SQL, 결과 엔터티는 두 경우 모두 변경 추적되지만 둘 사이의 성능 차이는 크게 다릅니다. 무엇을 제공합니까?
Performance Considerations for Entity Framework 5