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

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

Amazon Redshift 쿼리 계획을 위한 EXPLAIN 조인

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

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

  • 쿼리의 구조

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

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

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

  • 중첩 루프 - 중첩 루프는 두 테이블 간에 해시 테이블을 생성할 수 없을 때 발생합니다. 중첩 루프는 주로 교차 조인(카르테시아 제품) 및 일부 부등식 조인에 사용됩니다. 이렇게 하려면 데이터베이스가 왼쪽 테이블의 모든 값과 오른쪽 테이블의 모든 값을 확인해야 합니다. 중첩 루프 조인의 복잡성은 조인을 처리하기 위해 약 N*N(또는 N2)의 다양한 작업을 수행해야 한다는 점에서 "사각적"입니다. 중첩 루프는 가장 최적의 조인 유형입니다.

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

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