이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.토토 사이트 순위 PostgreSQL : 문서 : 17 : 27.2. 누적 통계 시스템버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

27.2. 롤 토토 수집기

PostgreSQL's롤 토토 수집기은 서버 활동에 대한 정보 수집 및 보고를 지원하는 하위 시스템입니다. 현재 수집기는 디스크 블록 및 개별 행 용어 모두에서 테이블 및 인덱스에 대한 액세스를 계산할 수 있습니다. 또한 각 테이블의 총 행 수와 각 테이블의 Vacuum 및 분석 작업에 대한 정보를 추적합니다. 또한 사용자 정의 함수에 대한 호출과 각 함수에 소요된 총 시간을 계산할 수도 있습니다.

포스트그레SQL또한 현재 다른 서버 프로세스에서 실행 중인 정확한 명령에 대한 보고를 지원합니다. 이 기능은 수집기 프로세스와 독립적입니다.

27.2.1. 통계 수집 구성

통계 수집은 쿼리 실행에 약간의 오버헤드를 추가하므로 정보를 수집하거나 수집하지 않도록 시스템을 구성할 수 있습니다. 이는 일반적으로 다음에서 설정되는 구성 매개변수에 의해 제어됩니다.postgresql.conf. (보다롤 토토 : 문서 : 9.4 : 서버 구성구성 매개변수 설정에 대한 자세한 내용은.)

매개변수track_activities모든 서버 프로세스에서 실행 중인 현재 명령을 모니터링할 수 있습니다.

매개변수track_counts테이블 및 인덱스 액세스에 대한 롤 토토 수집 여부를 제어합니다.

매개변수트랙_기능사용자 정의 함수의 사용을 추적할 수 있습니다.

매개변수track_io_timing블록 읽기 및 쓰기 시간 모니터링을 활성화합니다.

일반적으로 이러한 매개변수는 다음에서 설정됩니다.postgresql.conf모든 서버 프로세스에 적용되지만 다음을 사용하여 개별 세션에서 켜거나 끌 수 있습니다.PostgreSQL : 문서 : 9.4 : 토토 꽁 머니명령. (일반 사용자가 관리자에게 자신의 활동을 숨기는 것을 방지하기 위해 슈퍼유저만 이 매개변수를 변경할 수 있습니다.SET.)

롤 토토 수집기는 수집된 정보를 다른 사람에게 전송합니다.포스트그레SQL임시 파일을 통해 처리합니다. 이 파일은 다음과 같은 디렉토리에 저장됩니다.stats_temp_directory매개변수,pg_stat_tmp기본적으로. 더 나은 성능을 위해,stats_temp_directoryRAM 기반 파일 시스템을 가리킬 수 있어 물리적 I/O 요구 사항이 줄어듭니다. 서버가 완전히 종료되면 통계 데이터의 영구 복사본이 다음 위치에 저장됩니다.pg_stat하위 디렉토리. 서버를 다시 시작해도 롤 토토가 유지될 수 있습니다. 서버 시작 시 복구가 수행되면(예: 즉시 종료, 서버 충돌 및 특정 시점 복구 후) 모든 롤 토토 카운터가 재설정됩니다.

27.2.2. 수집된 통계 보기

다음에 나열된 사전 정의된 여러 보기표 27-1, 통계 수집 결과를 표시하는 데 사용할 수 있습니다. 또는 다음에서 설명한 대로 기본 통계 함수를 사용하여 사용자 정의 보기를 구축할 수 있습니다.섹션 27.2.3.

통계를 사용하여 현재 활동을 모니터링할 때 정보가 즉시 업데이트되지 않는다는 점을 인식하는 것이 중요합니다. 각 개별 서버 프로세스는 유휴 상태가 되기 직전에 새로운 통계 개수를 수집기에 전송합니다. 따라서 아직 진행 중인 쿼리나 트랜잭션은 표시된 총계에 영향을 주지 않습니다. 또한 수집기 자체는 최대 한 번만 새 보고서를 내보냅니다.PGSTAT_STAT_INTERVAL밀리초(서버를 구축하는 동안 변경하지 않는 한 500ms). 따라서 표시된 정보는 실제 활동보다 뒤떨어집니다. 그러나 현재 쿼리 정보는track_activities항상 최신 상태입니다.

또 다른 중요한 점은 서버 프로세스에 이러한 통계를 표시하도록 요청하면 먼저 수집기 프로세스에서 내보낸 가장 최근 보고서를 가져온 다음 현재 트랜잭션이 끝날 때까지 모든 통계 보기 및 기능에 대해 이 스냅샷을 계속 사용한다는 것입니다. 따라서 현재 트랜잭션을 계속하는 한 통계에는 정적 정보가 표시됩니다. 마찬가지로, 모든 세션의 현재 쿼리에 대한 정보는 해당 정보가 트랜잭션 내에서 처음 요청될 때 수집되며 동일한 정보가 트랜잭션 전체에 표시됩니다. 이는 버그가 아닌 기능입니다. 이를 통해 통계에 대한 여러 쿼리를 수행하고 숫자가 변경되는 것을 걱정하지 않고 결과를 상호 연관시킬 수 있기 때문입니다. 그러나 각 쿼리에서 새로운 결과를 보려면 트랜잭션 블록 외부에서 쿼리를 수행해야 합니다. 또는 호출할 수 있습니다.pg_stat_clear_snapshot(), 현재 트랜잭션의 통계 스냅샷(있는 경우)을 삭제합니다. 다음에 통계 정보를 사용하면 새 스냅샷을 가져오게 됩니다.

트랜잭션은 보기에서 자체 롤 토토(아직 수집기로 전송되지 않은 상태)를 볼 수도 있습니다.pg_stat_xact_all_tables, pg_stat_xact_sys_tables, pg_stat_xact_user_tablespg_stat_xact_user_functions. 이 숫자는 위에서 설명한 대로 작동하지 않습니다. 대신 거래 전반에 걸쳐 지속적으로 업데이트됩니다.

표 27-1. 표준 통계 보기

보기 이름 설명
pg_stat_activity 서버 프로세스당 하나의 행으로, 상태 및 현재 쿼리 등 해당 프로세스의 현재 활동과 관련된 정보를 표시합니다. 보다pg_stat_activity자세한 내용은.
pg_stat_archiver WAL 아카이버 프로세스 활동에 대한 롤 토토를 표시하는 하나의 행만 있습니다. 보다pg_stat_archiver자세한 내용은.
pg_stat_bgwriter 백그라운드 작성기 프로세스 활동에 대한 롤 토토를 표시하는 한 행만. 보다pg_stat_bgwriter자세한 내용은.
pg_stat_database 데이터베이스당 하나의 행, 데이터베이스 전체 롤 토토를 표시합니다. 보다pg_stat_database자세한 내용은.
pg_stat_all_tables 현재 데이터베이스의 각 테이블에 대한 행이 하나씩 있으며 해당 특정 테이블에 대한 액세스에 대한 통계를 표시합니다. 보다pg_stat_all_tables자세한 내용은.
pg_stat_sys_tables 동일pg_stat_all_tables, 시스템 테이블만 표시된다는 점만 제외.
pg_stat_user_tables 다음과 동일pg_stat_all_tables, 사용자 테이블만 표시된다는 점만 제외.
pg_stat_xact_all_tables 비슷함pg_stat_all_tables, 그러나 현재 트랜잭션 내에서 지금까지 수행된 작업을 계산합니다(아님아직 포함됨pg_stat_all_tables및 관련 보기). 라이브 및 데드 행 수와 진공 및 분석 작업에 대한 열은 이 뷰에 없습니다.
pg_stat_xact_sys_tables 동일pg_stat_xact_all_tables, 시스템 테이블만 표시된다는 점만 제외.
pg_stat_xact_user_tables 동일pg_stat_xact_all_tables, 사용자 테이블만 표시된다는 점만 제외.
pg_stat_all_indexes 현재 데이터베이스의 각 인덱스에 대한 행이 하나씩 있으며 해당 특정 인덱스에 대한 액세스에 대한 통계를 표시합니다. 보다pg_stat_all_indexes자세한 내용은.
pg_stat_sys_indexes 다음과 같음pg_stat_all_indexes, 단, 시스템 테이블의 인덱스만 표시됩니다.
pg_stat_user_indexes 다음과 같음pg_stat_all_indexes, 단, 사용자 테이블의 인덱스만 표시됩니다.
pg_statio_all_tables 현재 데이터베이스의 각 테이블에 대한 행이 하나씩 있으며 해당 특정 테이블의 I/O에 대한 통계를 표시합니다. 보다pg_statio_all_tables자세한 내용은.
pg_statio_sys_tables 동일pg_statio_all_tables, 단, 시스템 테이블만 표시됩니다.
pg_statio_user_tables 동일함pg_statio_all_tables, 단, 사용자 테이블만 표시됩니다.
pg_statio_all_indexes 현재 데이터베이스의 각 인덱스에 대한 행이 하나씩 있으며 해당 특정 인덱스의 I/O에 대한 통계를 표시합니다. 보다pg_statio_all_indexes자세한 내용은.
pg_statio_sys_indexes 다음과 같습니다pg_statio_all_indexes, 단, 시스템 테이블의 인덱스만 표시됩니다.
pg_statio_user_indexes 다음과 같음pg_statio_all_indexes, 단, 사용자 테이블의 인덱스만 표시됩니다.
pg_statio_all_sequences 현재 데이터베이스의 각 시퀀스에 대해 하나의 행이 있으며 해당 특정 시퀀스의 I/O에 대한 통계를 표시합니다. 보다pg_statio_all_sequences자세한 내용은.
pg_statio_sys_sequences 다음과 같음pg_statio_all_sequences, 단, 시스템 시퀀스만 표시됩니다. (현재 시스템 시퀀스가 ​​정의되어 있지 않으므로 이 보기는 항상 비어 있습니다.)
pg_statio_user_sequences 동일함pg_statio_all_sequences, 단, 사용자 시퀀스만 표시됩니다.
pg_stat_user_functions 추적된 각 함수에 대한 행이 하나씩 있으며 해당 함수 실행에 대한 롤 토토를 표시합니다. 보다pg_stat_user_functions자세한 내용은.
pg_stat_xact_user_functions 비슷함pg_stat_user_functions, 그러나 현재 트랜잭션 중 호출만 계산합니다(아님아직 포함됨pg_stat_user_functions).
pg_stat_replication WAL 발신자 프로세스당 하나의 행으로 해당 발신자의 연결된 대기 서버에 대한 복제에 대한 롤 토토를 표시합니다. 보다pg_stat_replication자세한 내용은.
pg_stat_database_contributes 데이터베이스당 하나의 행, 대기 서버의 복구 충돌로 인한 쿼리 취소에 대한 데이터베이스 전체 롤 토토를 표시합니다. 보다pg_stat_database_contributes자세한 내용은.

인덱스별 롤 토토는 어떤 인덱스가 사용되고 있는지, 얼마나 효과적인지 확인하는 데 특히 유용합니다.

pg_statio_뷰는 주로 버퍼 캐시의 효율성을 확인하는 데 유용합니다. 실제 디스크 읽기 수가 버퍼 적중 수보다 훨씬 적으면 캐시는 커널 호출을 호출하지 않고도 대부분의 읽기 요청을 충족합니다. 그러나 이러한 롤 토토는 전체 내용을 제공하지 않습니다.PostgreSQL디스크 I/O, 다음에 없는 데이터를 처리합니다.PostgreSQL버퍼 캐시는 여전히 커널의 I/O 캐시에 있을 수 있으므로 물리적 읽기 없이도 계속 가져올 수 있습니다. 다음에 대한 자세한 정보를 얻는 데 관심이 있는 사용자PostgreSQLI/O 동작은 다음을 사용하는 것이 좋습니다.포스트그레SQL커널의 I/O 처리에 대한 통찰력을 제공하는 운영 체제 유틸리티와 결합된 롤 토토 수집기.

표 27-2.pg_stat_activity보기

칼럼 유형 설명
데이트 oid 이 백엔드가 연결된 데이터베이스의 OID
데이터이름 이름 이 백엔드가 연결된 데이터베이스의 이름
pid 정수 이 백엔드의 프로세스 ID
usesysid oid 이 백엔드에 로그인한 사용자의 OID
사용자 이름 이름 이 백엔드에 로그인한 사용자의 이름
응용프로그램_이름 텍스트 이 백엔드에 연결된 애플리케이션의 이름
클라이언트_주소 inet 이 백엔드에 연결된 클라이언트의 IP 주소입니다. 이 필드가 null이면 클라이언트가 서버 시스템의 Unix 소켓을 통해 연결되었거나 이것이 autovacuum과 같은 내부 프로세스임을 나타냅니다.
클라이언트_호스트 이름 텍스트 다음의 역방향 DNS 조회로 보고된 연결된 클라이언트의 호스트 이름클라이언트_주소. 이 필드는 IP 연결에 대해서만 null이 아니며, 다음 경우에만 해당됩니다.로그_호스트 이름활성화되었습니다.
클라이언트_포트 정수 클라이언트가 이 백엔드와의 통신에 사용하는 TCP 포트 번호 또는-1Unix 소켓을 사용하는 경우
backend_start 시간대가 포함된 타임스탬프 이 프로세스가 시작된 시간, 즉 클라이언트가 서버에 연결된 시간
xact_start 시간대가 포함된 타임스탬프 이 프로세스의 현재 트랜잭션이 시작된 시간. 활성 트랜잭션이 없으면 null입니다. 현재 쿼리가 해당 트랜잭션의 첫 번째 쿼리인 경우 이 열은query_start열.
query_start 시간대가 포함된 타임스탬프 현재 활성 쿼리가 시작된 시간 또는 다음과 같은 경우상태아닙니다활성, 마지막 쿼리가 시작된 시간
상태_변경 시간대가 포함된 타임스탬프 상태마지막으로 변경되었습니다
대기 중 부울 이 백엔드가 현재 잠금을 기다리고 있는 경우 true
상태 텍스트 이 백엔드의 현재 전반적인 상태. 가능한 값은 다음과 같습니다:
  • 활성: 백엔드가 쿼리를 실행 중입니다.

  • 유휴: 백엔드가 새 클라이언트 명령을 기다리고 있습니다.

  • 트랜잭션 유휴 상태: 백엔드가 트랜잭션에 있지만 현재 쿼리를 실행하고 있지 않습니다.

  • 트랜잭션 유휴 상태(중단됨): 이 상태는와 유사합니다.트랜잭션 유휴, 거래의 문 중 하나에서 오류가 발생한 경우를 제외하고.

  • 빠른 경로 함수 호출: 백엔드가 빠른 경로 기능을 실행하고 있습니다.

  • 비활성화: 이 상태는 다음과 같은 경우에 보고됩니다.track_activities이 백엔드에서는 비활성화되어 있습니다.

backend_xid xid 이 백엔드의 최상위 트랜잭션 식별자(있는 경우).
backend_xmin xid 현재 백엔드의xmin수평선.
질의 텍스트 이 백엔드의 가장 최근 쿼리 텍스트. 만약에상태is활성이 필드는 현재 실행 중인 쿼리를 표시합니다. 다른 모든 상태에서는 마지막으로 실행된 쿼리가 표시됩니다.

pg_stat_activity뷰에는 서버 프로세스당 하나의 행이 있으며 해당 프로세스의 현재 활동과 관련된 정보를 표시합니다.

참고:대기 중그리고상태열은 독립적입니다. 백엔드가활성상태, 그럴 수도 있고 아닐 수도 있음대기 중. 상태인 경우활성그리고대기 중참입니다. 이는 쿼리가 실행되고 있지만 시스템 어딘가의 잠금으로 인해 차단되고 있음을 의미합니다.

표 27-3.pg_stat_archiver보기

칼럼 유형 설명
archived_count 비긴트 성공적으로 아카이브된 WAL 파일 수
last_archived_wal 텍스트 성공적으로 아카이브된 마지막 WAL 파일의 이름
last_archived_time 시간대가 포함된 타임스탬프 마지막으로 성공한 아카이브 작업 시간
failed_count 비긴트 WAL 파일 아카이브 시도 실패 횟수
last_failed_wal 텍스트 마지막으로 실패한 아카이브 작업의 WAL 파일 이름
last_failed_time 시간대가 포함된 타임스탬프 마지막으로 실패한 아카이브 작업 시간
stats_reset 시간대가 포함된 타임스탬프 이 롤 토토가 마지막으로 재설정된 시간

pg_stat_archiver뷰에는 항상 클러스터의 아카이버 프로세스에 대한 데이터가 포함된 단일 행이 있습니다.

표 27-4.pg_stat_bgwriter보기

칼럼 유형 설명
checkpoints_timed bigint 수행된 예정된 체크포인트 수
checkpoints_req 비긴트 요청된 수행된 체크포인트 수
checkpoint_write_time 배정밀도 파일이 디스크에 기록되는 체크포인트 처리 부분에 소요된 총 시간(밀리초)
checkpoint_sync_time 배정밀도 파일이 디스크에 동기화되는 체크포인트 처리 부분에 소비된 총 시간(밀리초)
buffers_checkpoint 비긴트 체크포인트 동안 작성된 버퍼 수
buffers_clean bigint 백그라운드 작성자가 쓴 버퍼 수
maxwrite_clean 비긴트 너무 많은 버퍼를 기록했기 때문에 백그라운드 작성자가 정리 스캔을 중지한 횟수
buffers_backend 비긴트 백엔드에서 직접 작성한 버퍼 수
buffers_backend_fsync bigint 백엔드가 자체적으로 실행해야 했던 횟수fsync호출(일반적으로 백엔드가 자체 쓰기를 수행하는 경우에도 백그라운드 작성자가 이를 처리합니다)
buffers_alloc bigint 할당된 버퍼 수
stats_reset 시간대가 포함된 타임스탬프 이 롤 토토가 마지막으로 재설정된 시간

pg_stat_bgwriter뷰에는 항상 클러스터에 대한 전역 데이터가 포함된 단일 행이 있습니다.

표 27-5.pg_stat_database보기

칼럼 유형 설명
데이트 oid 데이터베이스의 OID
데이터이름 이름 이 데이터베이스의 이름
백엔드 수 정수 현재 이 데이터베이스에 연결된 백엔드 수. 이는 현재 상태를 반영하는 값을 반환하는 이 보기의 유일한 열입니다. 다른 모든 열은 마지막 재설정 이후 누적된 값을 반환합니다.
xact_commit 비긴트 이 데이터베이스에서 커밋된 트랜잭션 수
xact_rollback 비긴트 롤백된 이 데이터베이스의 트랜잭션 수
blks_read bigint 이 데이터베이스에서 읽은 디스크 블록 수
blks_hit 비긴트 디스크 블록이 이미 버퍼 캐시에서 발견되어 읽기가 필요하지 않은 횟수(여기에는 운영 체제의 파일 시스템 캐시가 아닌 PostgreSQL 버퍼 캐시의 적중만 포함됨)
tup_returned bigint 이 데이터베이스의 쿼리에 의해 반환된 행 수
tup_fetched 비긴트 이 데이터베이스의 쿼리로 가져온 행 수
tup_inserted 비긴트 이 데이터베이스의 쿼리에 의해 삽입된 행 수
tup_updated 비긴트 이 데이터베이스의 쿼리에 의해 업데이트된 행 수
tup_deleted 비긴트 이 데이터베이스의 쿼리에 의해 삭제된 행 수
충돌 bigint 이 데이터베이스의 복구 충돌로 인해 취소된 쿼리 수. (충돌은 대기 서버에서만 발생합니다. 참조pg_stat_database_conferences자세한 내용은.)
temp_files 비긴트 이 데이터베이스의 쿼리로 생성된 임시 파일 수. 임시 파일이 생성된 이유(예: 정렬 또는 해싱)와 관계없이 모든 임시 파일이 계산됩니다.log_temp_files설정.
temp_bytes 비긴트 이 데이터베이스의 쿼리에 의해 임시 파일에 기록된 총 데이터 양입니다. 임시 파일이 생성된 이유와 관계없이 모든 임시 파일이 계산됩니다.log_temp_files설정.
교착상태 비긴트 이 데이터베이스에서 감지된 교착 상태 수
blk_read_time 배정밀도 이 데이터베이스의 백엔드가 데이터 파일 블록을 읽는 데 소요된 시간(밀리초)
blk_write_time 배정밀도 이 데이터베이스의 백엔드가 데이터 파일 블록을 쓰는 데 소요된 시간(밀리초)
stats_reset 시간대가 포함된 타임스탬프 이 롤 토토가 마지막으로 재설정된 시간

pg_stat_database뷰에는 클러스터의 각 데이터베이스에 대해 하나의 행이 포함되어 데이터베이스 전체 롤 토토를 표시합니다.

표 27-6.pg_stat_all_tables보기

칼럼 유형 설명
렐리드 oid 테이블의 OID
스키마 이름 이름 이 테이블이 있는 스키마의 이름
relname 이름 이 테이블의 이름
seq_scan 비긴트 이 테이블에서 시작된 순차 스캔 수
seq_tup_read 비긴트 순차 스캔으로 가져온 라이브 행 수
idx_scan 비긴트 이 테이블에서 시작된 인덱스 스캔 수
idx_tup_fetch 비긴트 인덱스 스캔으로 가져온 라이브 행 수
n_tup_ins 비긴트 삽입된 행 수
n_tup_upd 비긴트 업데이트된 행 수
n_tup_del 비긴트 삭제된 행 수
n_tup_hot_upd 비긴트 핫 업데이트된 행 수(즉, 별도의 색인 업데이트가 필요하지 않음)
n_live_tup 비긴트 추정된 라이브 행 수
n_dead_tup 비긴트 예상된 데드 행 수
n_mod_since_analyze 비긴트 이 테이블이 마지막으로 분석된 이후 수정된 예상 행 수
last_vacuum 시간대가 포함된 타임스탬프 이 테이블을 수동으로 정리한 마지막 시간(계산되지 않음진공이 가득 참)
last_autovacuum 시간대가 포함된 타임스탬프 이 테이블이 autovacuum 데몬에 의해 마지막으로 비워진 시간
last_analyze 시간대가 포함된 타임스탬프 이 테이블을 수동으로 분석한 마지막 시간
last_autoanalyze 시간대가 포함된 타임스탬프 이 테이블이 autovacuum 데몬에 의해 마지막으로 분석된 시간
vacuum_count 비진트 이 테이블을 수동으로 비운 횟수(계산되지 않음진공 가득 참)
autovacuum_count 비긴트 autovacuum 데몬에 의해 이 테이블이 비워진 횟수
analyze_count 비긴트 이 테이블이 수동으로 분석된 횟수
autoanalyze_count 비긴트 autovacuum 데몬이 이 테이블을 분석한 횟수

pg_stat_all_tables뷰에는 현재 데이터베이스(TOAST 테이블 포함)의 각 테이블에 대해 하나의 행이 포함되어 해당 특정 테이블에 대한 액세스에 대한 통계를 표시합니다. 그만큼pg_stat_user_tables그리고pg_stat_sys_tables뷰에는 동일한 정보가 포함되어 있지만 각각 사용자 테이블과 시스템 테이블만 표시하도록 필터링되었습니다.

표 27-7.pg_stat_all_indexes보기

칼럼 유형 설명
렐리드 oid 이 인덱스에 대한 테이블의 OID
indexrelid oid 이 색인의 OID
스키마 이름 이름 이 색인이 있는 스키마의 이름
relname 이름 이 색인에 대한 테이블 이름
indexrelname 이름 이 색인의 이름
idx_scan 비긴트 이 인덱스에서 시작된 인덱스 스캔 수
idx_tup_read 비긴트 이 인덱스에 대한 스캔으로 반환된 인덱스 항목 수
idx_tup_fetch 비긴트 이 인덱스를 사용하여 단순 인덱스 스캔으로 가져온 라이브 테이블 행 수

pg_stat_all_indexes뷰에는 현재 데이터베이스의 각 인덱스에 대해 하나의 행이 포함되어 해당 특정 인덱스에 대한 액세스에 대한 통계를 표시합니다. 그만큼pg_stat_user_indexes그리고pg_stat_sys_indexes뷰에는 동일한 정보가 포함되어 있지만 각각 사용자 및 시스템 색인만 표시하도록 필터링되었습니다.

색인은 간단한 색인 스캔을 통해 사용할 수 있습니다."비트맵"색인 스캔. 비트맵 스캔에서는 여러 인덱스의 출력이 AND 또는 OR 규칙을 통해 결합될 수 있으므로 비트맵 스캔을 사용할 때 개별 힙 행 페치를 특정 인덱스와 연결하기가 어렵습니다. 따라서 비트맵 스캔은pg_stat_all_indexes.idx_tup_read사용하는 인덱스에 대한 카운트(들)이며, 를 증가시킵니다.pg_stat_all_tables.idx_tup_fetch테이블에 대해 계산되지만 영향을 미치지 않습니다.pg_stat_all_indexes.idx_tup_fetch.

참고:idx_tup_read그리고idx_tup_fetch카운트는 비트맵 스캔을 사용하지 않고도 다를 수 있습니다. 왜냐하면idx_tup_read인덱스에서 검색된 인덱스 항목을 계산하는 동안idx_tup_fetch테이블에서 가져온 실시간 행 수를 계산합니다. 죽은 행이나 아직 커밋되지 않은 행을 인덱스를 사용하여 가져오는 경우 또는 인덱스 전용 스캔을 통해 힙 가져오기를 방지하는 경우 후자는 더 적습니다.

표 27-8.pg_statio_all_tables보기

칼럼 유형 설명
렐리드 oid 테이블의 OID
스키마 이름 이름 이 테이블이 있는 스키마의 이름
relname 이름 이 테이블의 이름
heap_blks_read 비긴트 이 테이블에서 읽은 디스크 블록 수
heap_blks_hit 비긴트 이 테이블의 버퍼 히트 수
idx_blks_read 비긴트 이 테이블의 모든 인덱스에서 읽은 디스크 블록 수
idx_blks_hit 비긴트 이 테이블의 모든 인덱스에 대한 버퍼 히트 수
toast_blks_read 비긴트 이 테이블의 TOAST 테이블에서 읽은 디스크 블록 수(있는 경우)
toast_blks_hit 비긴트 이 테이블의 TOAST 테이블에 있는 버퍼 히트 수(있는 경우)
tidx_blks_read 비긴트 이 테이블의 TOAST 테이블 인덱스(있는 경우)에서 읽은 디스크 블록 수
tidx_blks_hit 비긴트 이 테이블의 TOAST 테이블 인덱스(있는 경우)의 버퍼 히트 수

pg_statio_all_tables뷰에는 현재 데이터베이스(TOAST 테이블 포함)의 각 테이블에 대해 하나의 행이 포함되어 해당 특정 테이블의 I/O에 대한 통계를 표시합니다. 그만큼pg_statio_user_tables그리고pg_statio_sys_tables뷰에는 동일한 정보가 포함되어 있지만 각각 사용자 테이블과 시스템 테이블만 표시하도록 필터링되었습니다.

표 27-9.pg_statio_all_indexes보기

칼럼 유형 설명
렐리드 oid 이 인덱스에 대한 테이블의 OID
indexrelid oid 이 색인의 OID
스키마 이름 이름 이 인덱스가 있는 스키마의 이름
relname 이름 이 색인에 대한 테이블 이름
indexrelname 이름 이 색인의 이름
idx_blks_read 비긴트 이 인덱스에서 읽은 디스크 블록 수
idx_blks_hit 비긴트 이 인덱스의 버퍼 적중 수

pg_statio_all_indexes뷰에는 현재 데이터베이스의 각 인덱스에 대해 하나의 행이 포함되어 해당 특정 인덱스의 I/O에 대한 통계를 표시합니다. 그만큼pg_statio_user_indexes그리고pg_statio_sys_indexes뷰에는 동일한 정보가 포함되어 있지만 각각 사용자 및 시스템 색인만 표시하도록 필터링되었습니다.

표 27-10.pg_statio_all_sequences보기

칼럼 유형 설명
렐리드 oid 시퀀스의 OID
스키마 이름 이름 이 시퀀스가 ​​있는 스키마의 이름
relname 이름 이 시퀀스의 이름
blks_read 비긴트 이 시퀀스에서 읽은 디스크 블록 수
blks_hit 비긴트 이 시퀀스의 버퍼 히트 수

pg_statio_all_sequences뷰에는 현재 데이터베이스의 각 시퀀스에 대해 하나의 행이 포함되어 해당 특정 시퀀스의 I/O에 대한 통계를 표시합니다.

표 27-11.pg_stat_user_functions보기

칼럼 유형 설명
재미있는 oid 함수의 OID
스키마 이름 이름 이 함수가 있는 스키마의 이름
기능 이름 이름 이 함수의 이름
호출 비긴트 이 함수가 호출된 횟수
total_time 배정밀도 이 함수와 이 함수가 호출하는 다른 모든 함수에서 소요된 총 시간(밀리초)
self_time 배정밀도 이 함수에 의해 호출된 다른 함수를 포함하지 않고 이 함수 자체에 소요된 총 시간(밀리초)

pg_stat_user_functions뷰에는 추적된 각 함수에 대해 하나의 행이 포함되어 해당 함수 실행에 대한 롤 토토를 표시합니다. 그만큼트랙_기능매개변수는 추적할 기능을 정확하게 제어합니다.

표 27-12.pg_stat_replication보기

칼럼 유형 설명
pid 정수 WAL 발신자 프로세스의 프로세스 ID
usesysid oid 이 WAL 발신자 프로세스에 로그인한 사용자의 OID
사용자 이름 이름 이 WAL 발신자 프로세스에 로그인한 사용자의 이름
응용프로그램_이름 텍스트 이 WAL 발신자에 연결된 애플리케이션의 이름
클라이언트_주소 inet 이 WAL 발신자에 연결된 클라이언트의 IP 주소. 이 필드가 null이면 클라이언트가 서버 시스템의 Unix 소켓을 통해 연결되어 있음을 나타냅니다.
클라이언트_호스트 이름 텍스트 다음의 역방향 DNS 조회로 보고된 연결된 클라이언트의 호스트 이름클라이언트_주소. 이 필드는 IP 연결에 대해서만 null이 아니며, 다음 경우에만 해당됩니다.로그_호스트 이름활성화되었습니다.
클라이언트_포트 정수 클라이언트가 이 WAL 발신자와 통신하기 위해 사용하는 TCP 포트 번호, 또는-1Unix 소켓을 사용하는 경우
backend_start 시간대가 포함된 타임스탬프 이 프로세스가 시작된 시간, 즉 클라이언트가 이 WAL 발신자에 연결된 시간
backend_xmin xid 이 대기는xmin수평 보고자hot_standby_feedback.
상태 텍스트 현재 WAL 발신자 상태
sent_location pg_lsn 이 연결에서 전송된 마지막 트랜잭션 로그 위치
write_location pg_lsn 이 대기 서버가 디스크에 기록한 마지막 트랜잭션 로그 위치
flush_location pg_lsn 이 대기 서버에 의해 디스크로 플러시된 마지막 트랜잭션 로그 위치
replay_location pg_lsn 이 대기 서버의 데이터베이스에 마지막 트랜잭션 로그 위치가 재생되었습니다.
동기화_우선순위 정수 동기 대기 서버로 선택되기 위한 이 대기 서버의 우선순위
sync_state 텍스트 이 대기 서버의 동기 상태

pg_stat_replication뷰에는 WAL 발신자 프로세스당 하나의 행이 포함되어 해당 발신자의 연결된 대기 서버에 대한 복제에 대한 통계를 표시합니다. 직접 연결된 대기만 나열됩니다. 다운스트림 대기 서버에 대한 정보는 없습니다.

표 27-13.pg_stat_database_contributes보기

칼럼 유형 설명
데이트 oid 데이터베이스의 OID
데이터이름 이름 이 데이터베이스의 이름
confl_tablespace 비긴트 삭제된 테이블스페이스로 인해 취소된 이 데이터베이스의 쿼리 수
confl_lock 비긴트 잠금 시간 초과로 인해 취소된 이 데이터베이스의 쿼리 수
confl_snapshot 비긴트 오래된 스냅샷으로 인해 취소된 이 데이터베이스의 쿼리 수
confl_bufferpin 비긴트 고정된 버퍼로 인해 취소된 이 데이터베이스의 쿼리 수
confl_deadlock 비긴트 교착 상태로 인해 취소된 이 데이터베이스의 쿼리 수

pg_stat_database_contributes뷰에는 데이터베이스당 하나의 행이 포함되어 대기 서버의 복구 충돌로 인해 발생하는 쿼리 취소에 대한 데이터베이스 전체 통계를 표시합니다. 마스터 서버에서는 충돌이 발생하지 않으므로 이 보기에는 대기 서버에 대한 정보만 포함됩니다.

27.2.3. 통계 함수

통계를 보는 다른 방법은 위에 표시된 표준 보기에서 사용되는 것과 동일한 기본 통계 액세스 기능을 사용하는 쿼리를 작성하여 설정할 수 있습니다. 함수 이름과 같은 자세한 내용은 표준 보기의 정의를 참조하세요. (예를 들어,psql발행할 수 있습니다\d+ pg_stat_activity.) 데이터베이스별 통계에 대한 액세스 함수는 보고할 데이터베이스를 식별하기 위한 인수로 데이터베이스 OID를 사용합니다. 테이블별 및 인덱스별 함수는 테이블 또는 인덱스 OID를 사용합니다. 함수별 통계를 위한 함수는 함수 OID를 사용합니다. 이 함수를 사용하면 현재 데이터베이스의 테이블, 인덱스, 함수만 볼 수 있습니다.

통계 수집과 관련된 추가 기능은 다음에 나열되어 있습니다.표 27-14.

표 27-14. 추가 통계 기능

기능 반환 유형 설명
pg_backend_pid() 정수 현재 세션을 처리하는 서버 프로세스의 프로세스 ID
pg_stat_get_activity(정수) 레코드 집합 지정된 PID가 있는 백엔드에 대한 정보 레코드를 반환하거나 다음의 경우 시스템의 각 활성 백엔드에 대해 하나의 레코드를 반환합니다.NULL이 지정되었습니다. 반환된 필드는pg_stat_activity보기.
pg_stat_clear_snapshot() 공허 현재 통계 스냅샷 삭제
pg_stat_reset() 공허 현재 데이터베이스의 모든 통계 카운터를 0으로 재설정(수퍼유저 권한 필요)
pg_stat_reset_shared(텍스트) 공허 인수에 따라 일부 클러스터 전체 통계 카운터를 0으로 재설정합니다(수퍼유저 권한 필요). 부름pg_stat_reset_shared('bgwriter')에 표시된 모든 카운터를 0으로 만듭니다pg_stat_bgwriter보기. 부름pg_stat_reset_shared('아카이버')에 표시된 모든 카운터를 0으로 만듭니다pg_stat_archiver보기.
pg_stat_reset_single_table_counters(oid) 공허 현재 데이터베이스의 단일 테이블 또는 인덱스에 대한 통계를 0으로 재설정(수퍼유저 권한 필요)
pg_stat_reset_single_function_counters(oid) 공허 현재 데이터베이스의 단일 함수에 대한 통계를 0으로 재설정(수퍼유저 권한 필요)

pg_stat_get_activity,의 기본 기능pg_stat_activityview는 각 백엔드 프로세스에 대해 사용 가능한 모든 정보가 포함된 레코드 세트를 반환합니다. 때로는 이 정보의 일부만 얻는 것이 더 편리할 수도 있습니다. 이러한 경우에는 이전 백엔드별 통계 액세스 기능 세트를 사용할 수 있습니다. 이것들은 다음에 표시됩니다.표 27-15. 이러한 액세스 기능은 1부터 현재 활성화된 백엔드 수까지의 백엔드 ID 번호를 사용합니다. 함수pg_stat_get_backend_idset은 이러한 함수를 호출하기 위해 각 활성 백엔드에 대해 하나의 행을 생성하는 편리한 방법을 제공합니다. 예를 들어, 다음을 표시하려면PIDs 및 모든 백엔드의 현재 쿼리:

SELECT pg_stat_get_backend_pid(s.backendid) AS pid,
       pg_stat_get_backend_activity(s.backendid) AS 쿼리
    FROM (SELECT pg_stat_get_backend_idset() AS 백엔드) AS s;

표 27-15. 백엔드별 통계 함수

기능 반환 유형 설명
pg_stat_get_backend_idset() 정수 집합 현재 활성 백엔드 ID 번호 집합(1부터 활성 백엔드 수까지)
pg_stat_get_backend_activity(정수) 텍스트 이 백엔드의 가장 최근 쿼리 텍스트
pg_stat_get_backend_activity_start(정수) 시간대가 포함된 타임스탬프 가장 최근 쿼리가 시작된 시간
pg_stat_get_backend_client_addr(정수) inet 이 백엔드에 연결된 클라이언트의 IP 주소
pg_stat_get_backend_client_port(정수) 정수 클라이언트가 통신에 사용하는 TCP 포트 번호
pg_stat_get_backend_dbid(정수) oid 이 백엔드가 연결된 데이터베이스의 OID
pg_stat_get_backend_pid(정수) 정수 이 백엔드의 프로세스 ID
pg_stat_get_backend_start(정수) 시간대가 포함된 타임스탬프 이 프로세스가 시작된 시간
pg_stat_get_backend_userid(정수) oid 이 백엔드에 로그인한 사용자의 OID
pg_stat_get_backend_waiting(정수) 부울 이 백엔드가 현재 잠금을 기다리고 있는 경우 true
pg_stat_get_backend_xact_start(정수) 시간대가 포함된 타임스탬프 현재 트랜잭션이 시작된 시간