정렬 키 - Amazon Redshift

정렬 키

참고

SORTKEY AUTO로 테이블을 생성하는 것이 좋습니다. 그러면 Amazon Redshift가 자동 테이블 최적화를 사용하여 정렬 키를 선택합니다. 자세한 내용은 자동 테이블 최적화 단원을 참조하십시오. 이 섹션의 나머지 부분에서는 정렬 순서에 대한 세부 정보를 제공합니다.

테이블을 생성하면서 1개 이상의 열을 정렬 키로 정의할 수도 있습니다. 그러면 처음에 데이터를 빈 테이블에 로드할 때 열이 정렬 순서대로 디스크에 저장됩니다. 정렬 키 열에 대한 정보가 쿼리 플래너로 전달되고, 플래너는 이 정보를 사용해 데이터 정렬 방식의 활용 계획을 작성합니다. 자세한 내용은 CREATE TABLE 단원을 참조하십시오. 정렬 키 생성 모범 사례에 대한 자세한 내용은 최상의 정렬 키 선택 섹션을 참조하세요.

정렬은 범위 제한 조건자를 효율적으로 처리할 수 있는 방법입니다. Amazon Redshift는 열 기반 데이터를 1MB 디스크 블록에 저장합니다. 각 블록의 최소 값과 최대 값은 메타데이터로 저장됩니다. 쿼리가 범위 제한 조건자를 사용하는 경우에는 쿼리 프로세서가 테이블 스캔 도중 최소/최대 값을 사용하여 상당수의 블록을 빠르게 건너뛸 수 있습니다. 예를 들어 테이블에 날짜별로 정렬된 5년 치의 데이터를 저장되고 쿼리가 날짜 범위를 한 달로 지정한다고 가정합니다. 이 경우 스캔에서 디스크 블록의 최대 98%를 제거할 수 있습니다. 하지만 데이터가 정렬되어 있지 않다면 스캔해야 하는 디스크 블록의 수가 늘어납니다(모든 블록도 가능).

복합 또는 인터리브 정렬 키를 지정할 수 있습니다. 쿼리 조건자가 순서상 정렬 키 열의 하위 집합인 접두사를 사용할 때는 복합 정렬 키가 더욱 효율적입니다. 인터리브 정렬 키는 정렬 키에서 각 열마다 똑같은 가중치를 부여하기 때문에 쿼리 조건자가 정렬 키를 구성하는 열의 모든 하위 집합을 순서에 상관없이 사용할 수 있습니다.

선택한 정렬 키가 쿼리 성능에 미치는 영향을 알고 싶다면 EXPLAIN 명령을 사용하십시오. 자세한 내용은 쿼리 계획 및 실행 워크플로우 단원을 참조하십시오.

정렬 유형의 정의하려면 CREATE TABLE 또는 CREATE TABLE AS 문에서 INTERLEAVED 또는 COMPOUND 키워드를 사용하십시오. 기본 키워드는 COMPOUND입니다. INSERT, UPDATE 또는 DELETE 작업으로 테이블을 정기적으로 업데이트하는 경우 COMPOUND를 사용하는 것이 좋습니다. 인터리브 정렬 키는 최대 8개까지 열을 사용할 수 있습니다. 데이터와 클러스터 크기에 따라 VACUUM REINDEX는 인터리브된 정렬 키를 분석하기 위한 추가적인 패스를 만들기 때문에 VACUUM FULL보다 상당히 더 많은 시간이 소요됩니다. 인터리브된 정렬은 복합 정렬보다 많은 행을 다시 배열해야 하므로 인터리브된 테이블에서는 정렬 및 병합 작업이 더 오래 걸릴 수 있습니다.

테이블 정렬 키를 확인하려면 SVV_TABLE_INFO 시스템 뷰에 대한 쿼리를 실행하십시오.