해시, 병합 및 루프 조인의 차이점은 무엇입니까?


40

SQL Server에서 조인 힌트를 지정할 수 있습니다.

  • 해시 조인
  • MERGE는 가입
  • 루프 가입

이 세 가지 조인 힌트의 정의는 무엇이며 언제 사용해야합니까?

답변:


37

MSDN의 Advanced Query Tuning Concepts 주제에서 :

SQL Server는 세 가지 유형의 조인 작업을 사용합니다.

  • 중첩 루프 조인

  • 조인 병합

  • 해시 조인

하나의 조인 입력이 작고 (10 행 미만) 다른 조인 입력이 상당히 크고 조인 열에서 인덱싱되는 경우 인덱스 중첩 루프 조인은 I / O가 가장 적고 비교가 가장 적기 때문에 가장 빠른 조인 작업입니다. 중첩 루프에 대한 자세한 내용은 중첩 루프 조인 이해를 참조하십시오.

두 조인 입력이 작지 않지만 조인 열에서 정렬 된 경우 (예 : 정렬 된 인덱스를 스캔하여 얻은 경우) 병합 조인이 가장 빠른 조인 작업입니다. 두 조인 입력이 크고 두 입력의 크기가 비슷한 경우 이전 정렬을 사용하는 병합 조인과 해시 조인이 비슷한 성능을 제공합니다. 그러나 두 입력 크기가 서로 크게 다르면 해시 결합 작업이 훨씬 빠릅니다. 자세한 내용은 병합 조인 이해를 참조하십시오.

해시 조인은 정렬되지 않은 대규모 비 인덱스 입력을 효율적으로 처리 할 수 ​​있습니다.

그러나 나는 당신 이보다 기본적인 주제 인 쿼리 튜닝으로 시작 하고 마지막으로 쿼리 힌트 를 사용해야한다고 생각합니다 .


5
동의, 조인 힌트를 넣는 것은 최후의 수단으로 남겨 두어야합니다 (때로는 추정 된 데이터가 실제 데이터와 크게 다른 경우 유용합니다).
Andrew Bickerton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.