2011-09-28 2 views
0

OUTER JOIN을 사용하여 두 테이블의 데이터를 하나의 테이블로 쿼리하려고합니다. 문제는 행을 고유하게 식별하기 위해 세 개의 입력란이 필요하다는 것입니다. 이 표현식을 포함하는 쿼리로 이동합니다.SQL Server OUTER 여러 개의 연결된 필드를 조인

FROM Data1 DB 
    RIGHT OUTER JOIN Data2 FT on (DB.field1 = FT.Value1 
           and DB.field2 = FT.field2 
           and DB.field3 = FT.field3) 

그러나 쿼리는 거의 영원히 실행됩니다. 전체 조건을 테스트하려면 WHERE 조건과 FULL OUTER JOIN을 사용하고 WHERE 조건의 경우 거의 즉시 수행됩니다. 반면 FULL OUTER JOIN을 사용하면 동일한 문제가 있었으며 대개 5 분 정도 후에 모든 작업을 취소했습니다.

누구든지 내 쿼리에 잘못되어있는 것을 볼 수 있습니까? 어떤 도움을 주셔서 감사합니다!

+2

FK 필드의 색인이 생성 되었습니까? – HLGEM

답변

0

실제로 모든 레코드를 쿼리에서 다시 필요로합니까? 일부 WHERE 조건으로 인해 실행 시간이 상당히 줄어들 수 있습니다.

예, 색인. 계획을 점검하고 권장되는 색인을 작성하십시오.

0

가장 좋은 방법은 실행 계획을 보는 것입니다 (그리고 그것에 익숙한 경우 질문에 스크린 샷을 게시하십시오). 그러면 쿼리에서 가장 비싼 부분이 어디에서 발생하는지 알 수 있습니다.

관련 문제