기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Redshift 쿼리 계획을 위한 EXPLAIN 조인
Amazon Redshift는 다양한 조인 연산자를 사용하여 다음을 기반으로 데이터를 검색합니다.
-
조인 중인 테이블의 물리적 설계
-
쿼리의 구조
-
조인에 필요한 데이터의 위치
-
쿼리 자체의 특정 요구 사항
Amazon Redshift에서 일반적으로 사용되는 조인 유형은 다음과 같습니다.
-
중첩 루프 - 중첩 루프는 두 테이블 간에 해시 테이블을 생성할 수 없을 때 발생합니다. 중첩 루프는 주로 교차 조인(카르테시아 제품) 및 일부 부등식 조인에 사용됩니다. 이렇게 하려면 데이터베이스가 왼쪽 테이블의 모든 값과 오른쪽 테이블의 모든 값을 확인해야 합니다. 중첩 루프 조인의 복잡성은 조인을 처리하기 위해 약 N*N(또는 N2)의 다양한 작업을 수행해야 한다는 점에서 "사각적"입니다. 중첩 루프는 가장 최적의 조인 유형입니다.
-
해시 조인 - 해시 조인에서 조인 조건은 서로에게 적합하지 않지만 Amazon Redshift는 약간의 작업으로 해시 조인을 사용하여를 관리할 수 있습니다. 해시 조인은 일반적으로 중첩 루프 조인보다 빠릅니다. Amazon Redshift는 두 테이블을 모두 살펴보고 테이블 간에 테이블 중간에 있는 조회 테이블과 같은 해시 테이블을 생성합니다. 예를 들어, 조인 열이 배포 키와 정렬 키가 모두 아닌 테이블을 조인할 때 해시 조인 및 해시 연산자가 사용됩니다.
-
병합 조인 - 병합 조인은 일반적으로 가장 빠른 조인이며 내부 조인 및 외부 조인에 사용됩니다. 병합 조인에서는 두 테이블이 서로 완벽하게 결합됩니다. 즉, 각 측의 조인 조건은 배포 키와 정렬 키입니다. 두 테이블 모두 조정할 필요 없이 완벽하게 정렬됩니다. 테이블의 정렬되지 않은 행은 조인 테이블의 20% 미만이어야 합니다. 정렬되지 않은 행의 백분율을 보려면 SVV_TABLE_INFO 시스템 테이블을 쿼리합니다. 전체 조인에는 사용되지 않습니다.