내용으로 건너뛰기

vacuum_sort_benefit가 0일 때 Amazon Redshift의 테이블에 정렬되지 않은 비율이 높게 표시되는 이유는 무엇입니까?

2분 분량
0

Amazon Redshift 테이블의 정렬되지 않은 비율이 높지만 vacuum_sort_benefit 값이 0입니다.

간략한 설명

Amazon Redshift는 SVV_TABLE_INFO의 정렬되지 않은 열을 계산하여 정렬 키 순서와 일치하지 않는 테이블 데이터의 백분율을 표시합니다. 정렬되지 않은 비율이 높으면 VACUUM 정렬 작업을 통해 쿼리 성능을 높일 수 있습니다.

vacuum_sort_benefit 값에 따라 정렬 작업으로 성능을 높일 수 있는지 여부가 결정됩니다. 값이 0인 경우 정렬을 수행해도 쿼리가 최적화되지 않기 때문에 Amazon Redshift가 VACUUM 작업의 이점을 활용할 수 없습니다.

vacuum_sort_benefit 값이 0인 상태에서 정렬되지 않은 비율이 높은 경우 다음과 같은 이유 때문일 수 있습니다.

  • Amazon Redshift에서 최근 쿼리 계획을 기반으로 정렬 시 얻을 수 있는 이점이 미미하다고 판단했습니다. 쿼리가 테이블의 일부에만 액세스하거나 일부 쿼리만 테이블에 액세스합니다.
  • 쿼리가 정렬 키 열을 기준으로 필터링하거나 정렬하지 않습니다. 정렬은 테이블이 정렬되지 않은 것처럼 보일 때도 최소한의 이점을 제공합니다.
  • 테이블에서 쿼리가 실행되지 않으므로 Amazon Redshift가 정렬 순서를 최적화할 필요가 없습니다.

자세한 내용은 테이블 정리를 참조하십시오.

해결 방법

정렬을 통해 성능을 높일 수 있는지 확인하려면 vacuum_sort_benefit 값과 정렬되지 않은 값을 모두 검토하십시오.

vacuum_sort_benefit 값이 0이고 정렬되지 않은 값이 높으면 데이터 정렬로 쿼리 패턴 성능을 높일 수 없습니다. vacuum_sort_benefit 지표는 워크로드 패턴을 기반으로 정렬을 통한 잠재적인 쿼리 성능 개선을 계산합니다.

다음 쿼리를 실행하여 값을 가져옵니다.

SELECT "schema", "table", sortkey1, sortkey_num, unsorted, vacuum_sort_benefit
 FROM SVV_TABLE_INFO
WHERE "table" = 'table_name';

참고: table_name을 테이블 이름으로 대체하십시오.

정렬 키가 자주 쿼리되는 필터 열과 일치하는지 확인하십시오. 정렬 키가 쿼리 패턴과 관련이 없는 경우 정렬되지 않은 비율이 높더라도 성능에 큰 영향을 미치지 않습니다.

정렬을 통해 성능을 개선할 수 있다고 판단되면 다음 VACUUM 정렬 명령을 실행하여 테이블을 수동으로 정리하십시오.

VACUUM SORT ONLY table_name;

참고: table_name을 테이블 이름으로 대체하십시오.

관련 정보

자동 테이블 정렬

AWS 공식업데이트됨 일 년 전