Amazon Redshift 쿼리 계획에 대한 EXPLAIN 조인 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Redshift 쿼리 계획에 대한 EXPLAIN 조인

Amazon Redshift는 여러 조인 연산자를 사용하여 다음을 기반으로 데이터를 검색합니다.

  • 조인되는 테이블의 물리적 설계

  • 쿼리의 구조

  • 조인에 필요한 데이터의 위치

  • 쿼리 자체의 특정 요구 사항

Amazon Redshift에서 일반적으로 사용되는 조인 유형은 다음과 같습니다.

  • 중첩 루프 - 중첩 루프는 두 테이블 간에 해시 테이블을 생성할 수 없을 때 나타납니다. 중첩 루프는 주로 교차 조인(카데시안 곱)과 일부 부등식 조인에 사용됩니다. 이 경우 데이터베이스가 왼쪽 테이블의 모든 값을 오른쪽 테이블의 모든 값과 비교하여 확인해야 합니다. 중첩 루프 조인의 복잡성은 조인을 처리하기 위해 약 N*N(또는 N²)번의 서로 다른 작업을 수행해야 한다는 점에서 '2차식'입니다. 중첩 루프는 가장 덜 최적화된 조인 유형입니다.

  • 해시 조인 - 해시 조인에서 조인 조건은 서로에게 적합하지 않지만 Amazon Redshift는 약간의 작업으로 해시 조인을 사용하여 관리할 수 있습니다. 해시 조인은 일반적으로 중첩 루프 조인보다 빠릅니다. Amazon Redshift는 두 테이블을 모두 살펴보고 이 사이에서 해시 테이블을 생성합니다. 예를 들어 테이블 중간에 있는 조회 테이블과 같습니다. 이 연산자는 조인 열이 둘 다 분산 키 및 정렬 키가 아닌 테이블을 조인할 때 사용됩니다.

  • 병합 조인 - 병합 조인은 일반적으로 가장 빠른 조인이고, 내부 조인과 외부 조인에 사용됩니다. 병합 조인에서 두 테이블 모두 서로에게 적합합니다. 즉, 각 측의 조인 조건은 분산 키와 정렬 키입니다. 두 테이블 모두 조정할 필요 없이 완벽하게 정렬됩니다. 테이블의 정렬되지 않은 행은 조인 테이블의 20% 미만이어야 합니다. 정렬되지 않은 행의 비율을 보려면 SVV_TABLE_INFO 시스템 테이블을 쿼리합니다. 전체 조인에는 사용되지 않습니다.