STL_VACUUM
정리된 테이블의 행 및 블록 통계를 표시합니다.
이 뷰는 정리 작업이 시작하고 끝난 시점에서 각각 특정 정보를 나열하며, 작업 실행 시 이점에 대한 설명도 나타냅니다. 이 명령 실행에 필요한 요건에 대한 자세한 내용은 VACUUM 명령 설명을 참조하십시오.
STL_VACUUM은 슈퍼 사용자에게만 표시됩니다. 자세한 내용은 시스템 테이블 및 뷰에 있는 데이터의 가시성 단원을 참조하십시오.
이 테이블의 데이터 중 일부 또는 전부는 SYS 모니터링 뷰인 SYS_VACUUM_HISTORY에서도 찾아볼 수 있습니다. SYS 모니터링 뷰의 데이터는 사용 및 이해가 더 쉽도록 형식이 지정되어 있습니다. 쿼리에 SYS 모니터링 뷰를 사용하는 것이 좋습니다.
테이블 열
열 명칭 | 데이터 유형 | 설명 |
---|---|---|
userid | 정수 | 항목을 생성한 사용자의 ID입니다. |
xid | bigint | VACUUM 문의 트랜잭션 ID. 이 테이블을 STL_QUERY 뷰로 조인하면 임의의 VACUUM 트랜잭션에서 실행된 SQL 문을 개별적으로 확인할 수 있습니다. 전체 데이터베이스를 정리하는 경우에는 각 테이블이 별도의 트랜잭션으로 정리됩니다. |
table_id | 정수 | 테이블 ID입니다. |
status | character(30) | 각 테이블의 VACUUM 작업 상태. 가능한 값은 다음과 같습니다.
VACUUM 정렬 임계값 설정에 대한 자세한 내용은 VACUUM 섹션을 참조하세요. |
rows | bigint | 테이블의 실제 행 수 + 삭제되었지만 아직 디스크에 저장되어 있는(정리 대기 중인) 모든 행. 이 열에는 Started 상태인 행에 대해 정리 작업이 시작되기 전 행의 수와 Finished 상태인 행에 대해 정리 작업을 마친 후 행의 수가 표시됩니다. |
sortedrows | 정수 | 테이블에서 정렬된 행의 수. 이 열에는 Status 열이 Started 상태인 행에 대해 정리 작업이 시작되기 전 행의 수와 Status 열이 Finished 상태인 행에 대해 정리 작업을 마친 후 행의 수가 표시됩니다. |
블록 | 정수 | 정리 작업 이전(Started 상태의 행)과 정리 작업 이후(Finished 열) 테이블 데이터를 저장하는 데 사용된 데이터 블록의 총 수. 각 데이터 블록이 1MB씩 사용합니다. |
max_merge_partitions | 정수 | 이 열은 성능 분석에 사용되며 병합 단계 반복당 테이블에 대해 vacuum이 처리할 수 있는 최대 파티션 수를 나타냅니다. (Vacuum은 정렬되지 않은 리전을 하나 이상의 정렬된 파티션으로 정렬합니다. 테이블의 열 수와 현재 Amazon Redshift 구성에 따라 병합 단계는 단일 병합 반복에서 최대 파티션 수를 처리할 수 있습니다. 병합 단계는 정렬된 파티션 수가 최대 병합 파티션 수를 초과해도 작동하지만 더 많은 병합 반복이 필요합니다.) |
eventtime | 타임스탬프 | 정리 작업의 시작 또는 종료 시점 |
reclaimable_rows | bigint | 현재 cutoff_xid에 대해 회수 가능한 행 수입니다. 이 열에는 상태가 Started 인 행에 대한 vacuum이 시작되기 전 Redshift에서 예상한 회수 가능한 행 수와, 상태가 Finished 인 행에 대한 vacuum 이후 남은 회수 가능한 행의 실제 수가 표시됩니다. |
reclaimable_space_mb | bigint | 현재 cutoff_xid의 회수 가능한 공간(MB)입니다. 이 열에는 상태가 Started 인 행에 대한 vacuum이 시작되기 전 Redshift에서 예상한 회수 가능한 공간과, 상태가 Finished 인 행에 대한 vacuum 이후 남은 회수 가능한 공간의 실제 양이 표시됩니다. |
cutoff_xid | bigint | VACUUM 작업의 컷오프 트랜잭션 ID입니다. 컷오프 이후의 모든 트랜잭션은 VACUUM 작업에 포함되지 않습니다. |
is_recluster | 정수 | 1(true)이면 VACUUUM 작업이 리클러스터 알고리즘을 실행했다는 뜻이고, 0(false)이면 실행되지 않았다는 뜻입니다. |
샘플 쿼리
다음은 테이블 108313의 정리 통계를 보고하는 쿼리입니다. 이 테이블은 몇 차례 삽입 및 삭제 작업 이후에 정리되었습니다.
select xid, table_id, status, rows, sortedrows, blocks, eventtime, reclaimable_rows, reclaimable_space_mb from stl_vacuum where table_id=108313 order by eventtime; xid | table_id | status | rows | sortedrows | blocks | eventtime | reclaimable_rows | reclaimable_space_mb -------+----------+-------------------------+------+------------+--------+----------------------+------------------+---------------------- 14294 | 108313 | Started | 1950 | 408 | 28 | 2016-05-19 17:36:01 | 984 | 17 14294 | 108313 | Finished | 966 | 966 | 11 | 2016-05-19 18:26:13 | 0 | 0 15126 | 108313 | Skipped(sorted>=95%) | 966 | 966 | 11 | 2016-05-19 18:26:38 | 0 | 0
VACUUM 작업을 시작했을 때 테이블에 포함된 행의 수는 1,950개였고, 이 행들은 1MB 블록 28개에 저장되어 있었습니다. Amazon Redshift는 vacuum 작업을 통해 984개 또는 17개 블록의 디스크 공간을 회수할 수 있다고 추정했습니다.
완료 상태 행의 경우 ROWS 열에는 966 값이 표시되고, BLOCKS 열 값은 28에서 11로 감소합니다. vacuum은 예상 디스크 공간을 재확보했으며, vacuum 작업이 완료된 후 재확보 가능한 행이나 공간이 남지 않았습니다.
정렬 단계(트랜잭션 15126)에서는 행이 정렬 키 순서에 따라 삽입되었기 때문에 정리 작업이 테이블을 건너뛸 수 있었습니다.
다음은 다수 행의 INSERT 작업 이후 SALES 테이블(이번 예의 테이블 110116)에 대한 SORT ONLY 정리 통계를 나타낸 예입니다.
vacuum sort only sales; select xid, table_id, status, rows, sortedrows, blocks, eventtime from stl_vacuum order by xid, table_id, eventtime; xid |table_id| status | rows |sortedrows|blocks| eventtime ----+--------+-----------------+-------+----------+------+-------------------- ... 2925| 110116 |Started Sort Only|1379648| 172456 | 132 | 2011-02-24 16:25:21... 2925| 110116 |Finished |1379648| 1379648 | 132 | 2011-02-24 16:26:28...