포스트그레SQL명령 실행 중 특정 명령의 진행 상황을 보고하는 기능이 있습니다. 현재 진행 상황 보고를 지원하는 유일한 명령은 다음과 같습니다.색인 생성, 진공그리고클러스터. 향후 확대될 수 있습니다.
언제든지색인 생성또는REINDEX실행 중입니다.pg_stat_progress_create_index뷰에는 현재 색인을 생성 중인 각 백엔드에 대해 하나의 행이 포함됩니다. 아래 표에서는 보고될 정보를 설명하고 이를 해석하는 방법에 대한 정보를 제공합니다.
표 27.22. pg_stat_progress_create_index보기
| 칼럼 | 유형 | 설명 |
|---|---|---|
pid |
정수 |
백엔드의 프로세스 ID. |
데이트 |
oid |
이 백엔드가 연결된 데이터베이스의 OID. |
데이터이름 |
이름 |
이 백엔드가 연결된 데이터베이스의 이름. |
렐리드 |
oid |
색인이 생성되는 테이블의 OID. |
index_relid |
oid |
생성되거나 재인덱싱되는 인덱스의 OID입니다. 비동시 중색인 생성이것은 0입니다. |
명령 |
텍스트 |
실행 중인 명령:색인 생성, 동시에 인덱스 생성, REINDEX또는동시에 REINDEX. |
단계 |
텍스트 |
현재 색인 생성 처리 단계입니다. 참조표 27.23. |
lockers_total |
비긴트 |
해당되는 경우 대기할 사물함의 총 개수. |
lockers_done |
비긴트 |
이미 대기 중인 사물함 수입니다. |
current_locker_pid |
비긴트 |
현재 대기 중인 사물함의 프로세스 ID. |
blocks_total |
비긴트 |
현재 단계에서 처리될 총 블록 수. |
blocks_done |
비긴트 |
현재 단계에서 이미 처리된 블록 수. |
tuples_total |
비긴트 |
현재 단계에서 처리될 총 튜플 수. |
tuples_done |
비긴트 |
현재 단계에서 이미 처리된 튜플 수. |
partitions_total |
비긴트 |
파티션된 테이블에 인덱스를 생성할 때 이 열은 인덱스가 생성될 총 파티션 수로 설정됩니다. |
partitions_done |
비긴트 |
파티션된 테이블에 인덱스를 생성할 때 이 열은 인덱스가 완료된 파티션 수로 설정됩니다. |
표 27.23. 인덱스 단계 생성
| 단계 | 설명 |
|---|---|
초기화 중 |
색인 생성또는REINDEX색인 생성을 준비 중입니다. 이 단계는 매우 짧을 것으로 예상됩니다. |
빌드 전 작성자를 기다리는 중 |
동시에 인덱스 생성또는동시에 REINDEX테이블이 완료되는 것을 잠재적으로 볼 수 있는 쓰기 잠금이 있는 트랜잭션을 기다리고 있습니다. 동시 모드가 아닌 경우 이 단계를 건너뜁니다. 열lockers_total, lockers_done그리고current_locker_pid이 단계의 진행 정보를 포함합니다. |
건물 색인 |
색인은 액세스 방법별 코드에 의해 구축되고 있습니다. 이 단계에서는 진행률 보고를 지원하는 액세스 방법이 자체 진행률 데이터를 채우고 하위 단계가 이 열에 표시됩니다. 일반적으로,blocks_total그리고blocks_done진행 데이터를 포함할 뿐만 아니라 잠재적으로tuples_total그리고tuples_done. |
검증 전 작성자를 기다리는 중 |
동시에 인덱스 생성또는동시에 REINDEX잠재적으로 테이블에 쓸 수 있는 쓰기 잠금이 있는 트랜잭션이 완료되기를 기다리고 있습니다. 동시 모드가 아닌 경우 이 단계를 건너뜁니다. 열lockers_total, lockers_done그리고current_locker_pid이 단계의 진행 정보를 포함합니다. |
색인 검증: 색인 스캔 |
동시에 인덱스 생성검증이 필요한 튜플을 검색하는 인덱스를 스캔 중입니다. 동시 모드가 아닌 경우 이 단계를 건너뜁니다. 열blocks_total(인덱스의 전체 크기로 설정) 및blocks_done이 단계의 진행 정보를 포함합니다. |
색인 유효성 검사: 튜플 정렬 |
동시에 인덱스 생성색인 스캔 단계의 출력을 정렬하는 중입니다. |
색인 유효성 검사: 테이블 스캔 |
동시에 인덱스 생성이전 두 단계에서 수집된 인덱스 튜플을 검증하기 위해 테이블을 스캔하고 있습니다. 동시 모드가 아닌 경우 이 단계를 건너뜁니다. 열blocks_total(테이블의 전체 크기로 설정) 및blocks_done이 단계의 진행 정보를 포함합니다. |
오래된 스냅샷을 기다리는 중 |
동시에 인덱스 생성또는동시에 REINDEX잠재적으로 테이블을 볼 수 있는 트랜잭션이 스냅샷을 릴리스하기를 기다리고 있습니다. 동시 모드가 아닌 경우 이 단계를 건너뜁니다. 열lockers_total, lockers_done그리고current_locker_pid이 단계의 진행 정보를 포함합니다. |
죽은 것으로 표시하기 전에 독자를 기다리는 중 |
동시에 REINDEX이전 인덱스를 비활성으로 표시하기 전에 테이블에 대한 읽기 잠금이 있는 트랜잭션이 완료되기를 기다리고 있습니다. 동시 모드가 아닌 경우 이 단계를 건너뜁니다. 열lockers_total, lockers_done그리고current_locker_pid이 단계의 진행 정보를 포함합니다. |
삭제하기 전에 독자를 기다리는 중 |
동시에 REINDEX이전 인덱스를 삭제하기 전에 테이블에 대한 읽기 잠금이 있는 트랜잭션이 완료되기를 기다리고 있습니다. 동시 모드가 아닌 경우 이 단계를 건너뜁니다. 열lockers_total, lockers_done그리고current_locker_pid이 단계의 진행 정보를 포함합니다. |
언제든지진공실행 중입니다.pg_stat_progress_vacuum뷰에는 현재 Vacuum을 수행 중인 각 백엔드(Autovacuum 작업자 프로세스 포함)에 대해 하나의 행이 포함됩니다. 아래 표에서는 보고될 정보를 설명하고 이를 해석하는 방법에 대한 정보를 제공합니다. 진행률:진공 가득 참명령은 다음을 통해 보고됩니다.pg_stat_progress_cluster왜냐하면 둘 다진공 가득 참그리고클러스터정규하면서 테이블을 다시 작성진공그 자리에서 수정만 합니다. 참조섹션 27.4.3.
표 27.24. pg_stat_progress_vacuum보기
| 칼럼 | 유형 | 설명 |
|---|---|---|
pid |
정수 |
백엔드의 프로세스 ID. |
데이트 |
oid |
이 백엔드가 연결된 데이터베이스의 OID. |
데이터이름 |
이름 |
이 백엔드가 연결된 데이터베이스의 이름. |
렐리드 |
oid |
청소 중인 테이블의 OID. |
단계 |
텍스트 |
현재 진공 처리 단계. 참조표 27.25. |
heap_blks_total |
bigint |
테이블의 총 힙 블록 수. 이 숫자는 스캔 시작 시 사설 토토됩니다. 나중에 추가된 블록은 여기에서 방문하지 않으며 방문할 필요도 없습니다.진공. |
heap_blks_scanned |
비긴트 |
스캔된 힙 블록 수. 왜냐하면토토 사이트 추천 : 문서 : 12 : 69.4. 가시성 맵은 스캔을 최적화하는 데 사용되며 일부 블록은 검사 없이 건너뜁니다. 건너뛴 블록은 이 총계에 포함되므로 이 숫자는 결국 다음과 같아집니다.heap_blks_total진공이 완료되면. 이 카운터는 단계가 다음과 같은 경우에만 진행됩니다.힙 스캔 중. |
heap_blks_vacuumed |
비긴트 |
청소된 힙 블록 수. 테이블에 인덱스가 없으면 이 카운터는 단계가 다음과 같은 경우에만 진행됩니다.힙을 비우는 중. 데드 튜플이 포함되지 않은 블록은 건너뛰므로 카운터가 때때로 큰 단위로 앞으로 건너뛸 수 있습니다. |
index_vacuum_count |
비긴트 |
완료된 인덱스 진공 사이클 수. |
max_dead_tuples |
bigint |
인덱스 진공 주기를 수행하기 전에 저장할 수 있는 데드 튜플 수, 기준maintenance_work_mem. |
num_dead_tuples |
비긴트 |
마지막 인덱스 진공 주기 이후 수집된 데드 튜플 수. |
표 27.25. 진공 단계
| 단계 | 설명 |
|---|---|
초기화 중 |
진공힙 스캔 시작을 준비 중입니다. 이 단계는 매우 짧을 것으로 예상됩니다. |
힙 스캔 중 |
진공현재 힙을 스캔 중입니다. 필요한 경우 각 페이지를 정리하고 조각 모음하며 동결 작업을 수행할 수도 있습니다.heap_blks_scanned열을 사용하여 스캔 진행 상황을 모니터링할 수 있습니다. |
색인 비우기 |
진공현재 색인을 비우고 있습니다. 테이블에 인덱스가 있는 경우 힙이 완전히 스캔된 후 진공당 적어도 한 번 발생합니다. 다음과 같은 경우 진공청소기당 여러 번 발생할 수 있습니다.maintenance_work_mem(또는 자동 진공의 경우autovacuum_work_mem설정된 경우)는 발견된 데드 튜플 수를 저장하기에 충분하지 않습니다. |
힙을 비우는 중 |
진공현재 힙을 비우고 있습니다. 힙을 진공 청소기로 청소하는 것은 힙을 검색하는 것과 다르며, 인덱스를 진공 청소기로 청소하는 각 인스턴스 후에 발생합니다. 만일heap_blks_scanned다음보다 작음heap_blks_total, 시스템은 이 단계가 완료된 후 힙 스캔으로 돌아갑니다. 그렇지 않으면 이 단계가 완료된 후 인덱스 정리가 시작됩니다. |
색인 정리 중 |
진공현재 색인을 정리 중입니다. 이는 힙이 완전히 스캔되고 인덱스와 힙의 모든 진공 작업이 완료된 후에 발생합니다. |
힙 자르기 |
진공현재 운영 체제와의 관계 끝에서 빈 페이지를 반환하기 위해 힙을 자르고 있습니다. 이는 인덱스를 정리한 후에 발생합니다. |
최종 정리 수행 중 |
진공최종 정리를 수행 중입니다. 이 단계에서는,진공여유 공간 맵을 비우고 통계를 업데이트합니다pg_class, 통계 수집기에 통계를 보고합니다. 이 단계가 완료되면,진공종료됩니다. |
언제든지클러스터또는진공이 가득 참실행 중입니다.pg_stat_progress_cluster뷰에는 현재 두 명령 중 하나를 실행 중인 각 백엔드에 대한 행이 포함됩니다. 아래 표에서는 보고될 정보를 설명하고 이를 해석하는 방법에 대한 정보를 제공합니다.
표 27.26. pg_stat_progress_cluster보기
| 칼럼 | 유형 | 설명 |
|---|---|---|
pid |
정수 |
백엔드의 프로세스 ID. |
데이트 |
oid |
이 백엔드가 연결된 데이터베이스의 OID. |
데이터이름 |
이름 |
이 백엔드가 연결된 데이터베이스의 이름. |
렐리드 |
oid |
클러스터링되는 테이블의 OID. |
명령 |
텍스트 |
실행 중인 명령입니다. 둘 중 하나클러스터또는진공이 가득 참. |
단계 |
텍스트 |
현재 처리 단계. 참조표 27.27. |
cluster_index_relid |
oid |
인덱스를 사용하여 테이블을 스캔하는 경우 이는 사용 중인 인덱스의 OID입니다. 그렇지 않으면 0입니다. |
heap_tuples_scanned |
비긴트 |
스캔된 힙 튜플 수. 이 카운터는 단계가 다음과 같은 경우에만 진행됩니다.seq 스캐닝 힙, 인덱스 스캐닝 힙또는새 힙 작성. |
heap_tuples_write |
비긴트 |
기록된 힙 튜플 수. 이 카운터는 단계가 다음과 같은 경우에만 진행됩니다.seq 스캐닝 힙, 인덱스 스캐닝 힙또는새 힙 작성. |
heap_blks_total |
비긴트 |
테이블의 총 힙 블록 수. 이 숫자는의 시작 부분을 기준으로 사설 토토됩니다.seq 스캐닝 힙. |
heap_blks_scanned |
비긴트 |
스캔된 힙 블록 수. 이 카운터는 단계가 다음과 같은 경우에만 진행됩니다.seq 스캐닝 힙. |
index_rebuild_count |
bigint |
재구축된 인덱스 수. 이 카운터는 단계가 다음과 같은 경우에만 진행됩니다.색인 재구축. |
표 27.27. 클러스터 및 VACUUM FULL 단계
| 단계 | 설명 |
|---|---|
초기화 중 |
명령이 힙 스캔 시작을 준비 중입니다. 이 단계는 매우 짧을 것으로 예상됩니다. |
seq 스캐닝 힙 |
명령은 현재 순차 스캔을 사용하여 테이블을 스캔하고 있습니다. |
인덱스 스캐닝 힙 |
클러스터현재 인덱스 스캔을 사용하여 테이블을 스캔하고 있습니다. |
튜플 정렬 |
클러스터현재 튜플을 정렬 중입니다. |
새 힙 작성 |
클러스터현재 새 힙을 작성 중입니다. |
관계 파일 교환 중 |
명령은 현재 새로 빌드된 파일을 제자리로 교체하고 있습니다. |
색인 재구축 |
명령이 현재 색인을 재구축하고 있습니다. |
최종 정리 수행 중 |
명령이 최종 정리를 수행하고 있습니다. 이 단계가 완료되면,클러스터또는진공이 가득 참종료됩니다. |