PostgreSQL명령 실행 중에 특정 명령의 진행 상황을보고 할 수 있습니다. 현재 진행 상황보고를 지원하는 유일한 명령은입니다.색인 생성
, 진공
및클러스터
. 이것은 미래에 확장 될 수 있습니다.
언제든지색인 생성
또는reindex
실행 중입니다.PG_STAT_PROGRESS_CREATE_INDEX
보기에는 현재 인덱스를 생성하는 각 백엔드 당 하나의 행이 포함됩니다. 아래 표는보고 될 정보를 설명하고 해석 방법에 대한 정보를 제공합니다.
표 27.22. PG_STAT_PROGRESS_CREATE_INDEX
보기
열 | type | 설명 |
---|---|---|
PID |
정수 |
백엔드의 프로세스 ID. |
datid |
OID |
이 백엔드가 연결된 데이터베이스의 OID. |
datname |
이름 |
이 백엔드가 연결된 데이터베이스 이름. |
릴리드 |
OID |
인덱스가 생성되는 테이블의 OID. |
index_relid |
OID |
생성되거나 다시 표시되는 인덱스의 OID. 비 일치하는 동안색인 생성 , 이것은 0입니다. |
명령 |
텍스트 |
실행중인 명령 :색인 생성 , 동시에 색인 생성 , reindex 또는Reindex 동시에 . |
Phase |
텍스트 |
인덱스 생성의 현재 처리 단계. 보다10390_10406. |
Lockers_Total |
bigint |
해당되는 경우 기다릴 총 사물함 수. |
Lockers_done |
bigint |
이미 기다려온 사물함 수. |
current_locker_pid |
bigint |
현재 기다리고있는 사물함의 프로세스 ID. |
blocks_total |
bigint |
현재 단계에서 처리 할 총 블록 수. |
blocks_done |
bigint |
현재 단계에서 이미 처리 된 블록 수. |
tuples_total |
bigint |
현재 단계에서 처리 할 튜플의 총 수. |
tuples_done |
bigint |
현재 단계에서 이미 처리 된 튜플 수. |
Partitions_total |
bigint |
파티션 된 테이블에서 인덱스를 생성 할 때이 열은 인덱스가 생성 될 총 파티션 수로 설정됩니다. |
Partitions_done |
bigint |
파티션 된 테이블에서 인덱스를 생성 할 때이 열은 인덱스가 완성 된 파티션 수로 설정됩니다. |
13088_13130
Phase | 설명 |
---|---|
초기화 |
색인 생성 또는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
보기에는 현재 진공 청소기가있는 각 백엔드 (Autovacuum Worker 프로세스 포함) 당 하나의 행이 포함됩니다. 아래 표는보고 될 정보를 설명하고 해석 방법에 대한 정보를 제공합니다.진공 Full
명령은를 통해보고됩니다.PG_STAT_PROGRESS_CLUST
왜냐하면 둘 다진공 Full
및클러스터
정기적으로 테이블을 다시 작성하십시오진공
제자리에만 수정합니다. 보다섹션 27.4.3.
표 27.24. PG_STAT_PROGRESS_VACUUM
보기
열 | type | 설명 |
---|---|---|
PID |
정수 |
백엔드의 프로세스 ID. |
datid |
OID |
이 백엔드가 연결된 데이터베이스의 OID. |
datname |
이름 |
이 백엔드가 연결된 데이터베이스 이름. |
릴리드 |
OID |
진공 청소기의 OID. |
Phase |
텍스트 |
진공의 현재 처리 단계. 보다표 27.25. |
heap_blks_total |
bigint |
테이블의 총 힙 블록 수. 이 숫자는 스캔 초기에사설 토토됩니다.진공 . |
heap_blks_scanned |
bigint |
힙 블록 수 스캔. 때문에가시성 맵스캔을 최적화하는 데 사용되며 일부 블록은 검사없이 건너 뜁니다. 건너 뛰기 블록은이 총계에 포함 되므로이 숫자는 결국과 동일하게됩니다.heap_blks_total 진공이 완료된 경우. 이 카운터는 단계가있는 경우에만 발전합니다스캐닝 힙 . |
heap_blks_vacuumed |
bigint |
힙 블록 수는 진공 청소기입니다. 테이블에 인덱스가 없으면이 카운터는 단계가있을 때만 진행됩니다힙 진공 청소기 . 죽은 튜플이 포함되지 않은 블록이 건너 뜁니다. 따라서 카운터는 때때로 큰 단위로 앞으로 건너 뛸 수 있습니다. |
index_vacuum_count |
bigint |
완료된 지수 진공주기 수. |
max_dead_tuples |
bigint |
지수 진공주기를 수행하기 전에 저장할 수있는 죽은 튜플의 수,Maintenance_Work_mem. |
num_dead_tuples |
bigint |
마지막 지수 진공주기 이후 수집 된 죽은 튜플 수. |
표 27.25. 진공 단계
Phase | 설명 |
---|---|
초기화 |
진공 힙 스캔을 시작할 준비를하고 있습니다. 이 단계는 매우 짧을 것으로 예상됩니다. |
스캐닝 힙 |
진공 현재 힙 스캔 중입니다. 필요한 경우 각 페이지를 잘라 내고 해체 할 수 있으며 동결 활동을 수행 할 수 있습니다.heap_blks_scanned 열을 사용하여 스캔 진행 상황을 모니터링 할 수 있습니다. |
인덱스 진공 청소기 |
진공 현재 인덱스를 청소하고 있습니다. 테이블에 인덱스가있는 경우 힙이 완전히 스캔 된 후 진공 당 최소 한 번 발생합니다.Maintenance_Work_mem(또는 Autovacuum의 경우autovacuum_work_mem설정된 경우) 발견 된 죽은 튜플의 수를 저장하기에 충분하지 않습니다. |
힙 진공 청소기 |
진공 현재 힙을 청소하고 있습니다. 힙 진공 청소기는 힙 스캐닝과는 다르며, 각각의 진공 지수 인스턴스 후에 발생합니다.heap_blks_scanned |heap_blks_total , 시스템은이 단계가 완료된 후 힙 스캔으로 돌아갑니다. 그렇지 않으면이 단계가 완료된 후 인덱스 정리를 시작합니다. |
인덱스 청소 |
진공 현재 인덱스를 정리하고 있습니다. 이것은 힙이 완전히 스캔되고 모든 인덱스의 진공 청소기가 완료된 후에 발생합니다. |
잘린 힙 |
진공 는 현재 운영 체제와의 관계가 끝날 때 빈 페이지를 반환하기 위해 힙을 절단하고 있습니다. 이것은 인덱스를 청소 한 후에 발생합니다. |
최종 청소 수행 |
진공 최종 청소를 수행하고 있습니다. 이 단계에서진공 여유 공간 맵을 청소하고 통계를 업데이트합니다pg_class 및 통계 수집가에게 통계를사설 토토합니다. 이 단계가 완료되면진공 끝이 끝날 것입니다. |
언제든지클러스터
또는진공 Full
실행 중입니다.PG_STAT_PROGRESS_CLUST
보기에는 현재 어느 명령을 실행중인 각 백엔드에 대한 행이 포함됩니다. 아래 표는보고 될 정보를 설명하고 해석 방법에 대한 정보를 제공합니다.
표 27.26. PG_STAT_PROGRESS_CLUST
보기
열 | type | 설명 |
---|---|---|
PID |
정수 |
백엔드의 프로세스 ID. |
datid |
OID |
이 백엔드가 연결된 데이터베이스의 OID. |
datname |
이름 |
이 백엔드가 연결된 데이터베이스 이름. |
릴리드 |
OID |
클러스터링중인 테이블의 OID. |
명령 |
텍스트 |
실행중인 명령. 어느 하나클러스터 또는진공 Full . |
Phase |
텍스트 |
현재 처리 단계. 보다표 27.27. |
cluster_index_relid |
OID |
색인을 사용하여 테이블을 스캔하는 경우 사용중인 인덱스의 OID입니다. 그렇지 않으면 0입니다. |
Heap_Tuples_Scanned |
bigint |
힙 튜플 수 스캔. 이 카운터는 단계가있는 경우에만 발전합니다SEQ 스캐닝 힙 , 인덱스 스캐닝 힙 또는새로운 힙 작성 . |
heap_tuples_written |
bigint |
쓰여진 힙 튜플 수. 이 카운터는 단계가있는 경우에만 발전합니다SEQ 스캐닝 힙 , 인덱스 스캐닝 힙 또는새로운 힙 작성 . |
heap_blks_total |
bigint |
테이블의 총 힙 블록 수. 이 숫자는의 시작 부분에서사설 토토됩니다.SEQ 스캐닝 힙 . |
heap_blks_scanned |
bigint |
스캔 한 힙 블록 수. 이 카운터는 단계가있는 경우에만 발전합니다SEQ 스캐닝 힙 . |
index_rebuild_count |
bigint |
인덱스 수가 재건되었습니다. 이 카운터는 단계가있는 경우에만 발전합니다인덱스 재건 . |
표 27.27. 클러스터 및 진공 전체 단계
Phase | 설명 |
---|---|
초기화 |
명령은 힙 스캔을 시작할 준비를하고 있습니다. 이 단계는 매우 짧을 것으로 예상됩니다. |
SEQ 스캐닝 힙 |
명령은 현재 순차적 스캔을 사용하여 테이블을 스캔 중입니다. |
인덱스 스캐닝 힙 |
클러스터 현재 인덱스 스캔을 사용하여 테이블을 스캔 중입니다. |
튜플 분류 |
클러스터 현재 튜플을 분류하고 있습니다. |
새로운 힙 작성 |
클러스터 현재 새로운 힙을 쓰고 있습니다. |
관계 파일 교환 |
명령이 현재 새로 작성된 파일을 제자리에 교환하고 있습니다. |
인덱스 재건 |
명령이 현재 인덱스 재건 중입니다. |
최종 청소 수행 |
명령은 최종 청소를 수행합니다. 이 단계가 완료되면클러스터 또는진공 Full 끝이 끝날 것입니다. |