2010-06-07 2 views
1

안녕하세요,linq의 조인시 성능

LINQ에서 저장 프로 시저를 다시 작성하려고합니다.

12 개 테이블을 결합하여 데이터를 가져 와서 다른 테이블에 삽입하는 작업입니다.

외부 조인이 7 개 있고 내부 조인이 4 개 있습니다. 한 행의 데이터가 반환됩니다.

지금 질문. 1) linq에서이 조인을 수행하는 가장 좋은 방법은 무엇입니까. 2) 이것이 성능에 영향을 미쳤다고 생각하십니까? (특정 시점에서 한 행의 데이터 만 검색하는 경우)

조언을 구하십시오.

감사합니다. SNA.

+0

어떤 O/RM 도구를 사용하고 있습니까? LINQ to SQL? – Steven

+0

당신이 그렇게할만한 이유가 없다면 LINQ에 저장된 proc 파일을 다시 작성하지 않을 것입니다. – BlackTigerX

답변

0

다중 조인에 대해 this question을 점검 할 수 있습니다. 나는 보통 람다 구문을 선호하지만 YMMV.

성능 : 쿼리 성능 자체가 영향을 받을지는 모르지만 실행 계획을 파악하는 데 약간의 오버 헤드가있을 수 있습니다. 복잡한 쿼리이기 때문에 실행 계획을 파악하는 데 약간의 오버 헤드가있을 수 있습니다.
가장 큰 성능 저하는 저장 프로 시저와 비교하여 필요할 데이터베이스 왕복이 될 가능성이 큽니다. 내가 너를 올바르게 이해한다면, 현재의 SP는 한번에 SELECT AND INSERT를한다. LINQ to SQL 또는 LINQ to Entities를 사용하여 실제로 다른 테이블에 데이터를 기록하려면 먼저 데이터를 가져와야합니다.

따라서 재 작성이 필요한 경우 사용 방법에 따라 다릅니다. 또는 데이터 모델에 저장 프로 시저를 추가 할 수 있습니다. 그것은 당신의 데이터 컨텍스트에 대한 방법으로 노출 될 것입니다.