2009-07-27 2 views
-3

SQL 일반 응용 프로그램 대신 Entity Framework 쿼리와 속도 차이가 있는지 아는 사람 있습니까? 엔티티 프레임 워크를 사용하면 테이블과 눈 사이의 조인을 수동으로 처리해야하며 상당히 복잡한 쿼리처럼 보입니다.Entity Framework 1 Vs. 일반 SQL 응용

주 /도, 주문, 성별, 의견, 즐겨 찾기 제품 등 ...에 많은 조인이있는 고객이 있다고 가정 할 때, 15 개의 관계가 있다고 가정합니다. 정보를 보여주는 간단한 "보기"페이지를 실행하는 데 약 3 ~ 4 초가 걸립니다. 나와 내 상사 (hehe)에게는 반드시 TOO 시간이 걸립니다.

일반 SQL로 작성하면 더 빨리 작동합니까?

+3

전문적인지 여부에 달려 있습니다. 증거없이 소프트웨어를 비난하는 것은 전문적이지 않습니다. –

+3

물론 당신은 그것을 비난 할 수 있습니다 .. 당신은 또한 하드웨어 또는 네트워크를 비난 할 수 있습니다. 진짜 이유가 무엇인지 알아 보려면 프로파일 링을 수행하고 성능을 비교해야합니다. 일반 SQL과 Entity Framework 사이. –

+0

나는 그것을 전혀 비난하지 않는다! 이 부가 기능의 성능 저하에 대해 들었는지 알고 싶습니다. 사촌 나는 VS.net 2010과 함께 잘 작동 prety 머리와 그들은 많은 것들을 패치. 프레임 워크 1.0 베타 릴리스처럼. –

답변

1

병목 현상이 발생한 위치를 확인하려면 프로파일 러를 사용하는 것이 가장 좋습니다. 대부분의 경우 충분히 빠르지 만 충분히 좋다는 것을 명심하십시오. 질의가 작성된 상황에서 3 초 또는 4 초가 허용되면 혼자서는 충분하다.

조숙 한 최적화는 에너지의 허리입니다. - 생각할 거리.

+0

로컬에서 디버깅 할 때이 방법을 시도했습니다. 이 시간은 2 초 미만입니다. 정확히 내 모든 페이지 프로세스를 실행하는 데 1,2 초. 최대 나는 2,3 초를 보았습니다. 어쩌면 자사의 웹 호스트 사촌 때문에 localy보다 1 ~ 2 초 걸리는 것 같습니다. 죄송합니다. 제 영어는 유창합니다. –

1

쿼리에 포함 된 조인의 수는 훨씬 간단하게 작성할 수 있음을 보여줍니다. 이 많은 조인을 사용하는 쿼리는 Entity Framework를 통해 실행하거나 SQL 데이터 판독기를 사용하여 느리게 실행됩니다.

-2

컨텍스트에서 LINQ를 사용하여 쿼리를 만들 때 .Include를 사용하는 대신 수동으로 LoadProperty를 수행하는 것이 훨씬 빠릅니다. 이제 17 개 관계가있는 큰 회사의 경우에도 요청이 모두 2 초 미만입니다.

작은 엔티티의 경우 .Include와 LoadProperty 간에는 중요한 차이가 없지만 10-12 개 이상의 관계가있는 엔티티를 사용하면 다소 까다로울 수 있습니다.

탱크가 응답을위한 ... heum, 내 영어를 유감스럽게 생각합니다! 나는 최선을 다하고있어!