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