이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다토토 사이트 순위 PostgreSQL : 문서 : 17 : 27.2. 누적 통계 시스템버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

27.2. 토토 캔 수집가

PostgreSQL's토토 캔 수집가는 지원하는 서브 시스템입니다

PostgreSQL도 지원합니다

27.2.1. 통계 수집

토토 캔 수집이 쿼리에 약간의 오버 헤드가 추가되므로postgresql.conf. (보다범퍼카 토토 : 문서 : 9.3 : 서버 구성에 대한 자세한 내용

매개 변수track_activities

매개 변수track_counts테이블 및 인덱스에 대한 토토 캔가 수집되는지 여부를 제어합니다

매개 변수track_functions사용자 정의 함수의 사용 추적 활성화.

매개 변수track_io_timing블록 읽기 및 쓰기 시간의 모니터링 가능.

일반적으로 이러한 매개 변수는에 설정됩니다.postgresql.conf모든 서버에 적용되도록합니다set명령. (에게set.)

토토 캔 수집가는 수집 된 정보를 전달합니다PostgreSQLstats_temp_directory매개 변수,PG_STAT_TMP기본적으로. 을 위한stats_temp_directoryRAM 기반 파일 시스템을 가리켜 물리적 I/O를 줄일 수 있습니다.PG_STAT서버 전체에 토토 캔를 유지할 수 있도록 하위 디렉토리

27.2.2. 수집 된 시청

몇 가지 사전 정의 된 뷰, 나열된테이블, 토토 캔 결과를 보여줄 수 있습니다섹션.

통계를 사용하여 현재 활동을 모니터링 할 때pgstat_stat_interval밀리 초 (서버를 구축하는 동안 변경되지 않는 한 500ms). 그래서track_activities항상 최신입니다.

또 다른 중요한 점은 서버 프로세스가 요청 될 때PG_STAT_CLEAR_SNAPSHOT(),

트랜잭션은 자체 토토 캔를 볼 수 있습니다 (아직pg_stat_xact_all_tables, pg_stat_xact_sys_tables, PG_STAT_XACT_USER_TABLEPG_STAT_XACT_USER_FUNTIONS. 이 숫자는 그렇지 않습니다

표 27-1. 표준 토토 캔보기

이름보기 설명
pg_stat_activity 서버 프로세스 당 하나의 행,pg_stat_activity자세한 내용.
PG_STAT_BGWRITER 배경 작가에 대한 토토 캔를 보여주는 한 행 만PG_STAT_BGWRITER자세한 내용.
PG_STAT_DATABASE 데이터베이스 전체 토토 캔를 표시하는 데이터베이스 당 1 행. 보다PG_STAT_DATABASE자세한 내용.
pg_stat_all_tables 현재 데이터베이스의 각 테이블마다 1 개의 행, 표시pg_stat_all_tables자세한 내용.
PG_STAT_SYS_TABLE 동일pg_stat_all_tables
pg_stat_user_tables 동일pg_stat_all_tables
pg_stat_xact_all_tables 유사pg_stat_all_tables, 그러나not아직 포함pg_stat_all_tables및 관련 견해).
pg_stat_xact_sys_tables 동일pg_stat_xact_all_tables,
PG_STAT_XACT_USER_TABLE 동일pg_stat_xact_all_tables,
PG_STAT_ALL_INDEXES 현재 데이터베이스의 각 인덱스마다 1 개의 행, 표시PG_STAT_ALL_INDEXES자세한 내용.
PG_STAT_SYS_INDEXES 동일PG_STAT_ALL_INDEXES
PG_STAT_USER_INDEXES 동일PG_STAT_ALL_INDEXES
pg_statio_all_tables 현재 데이터베이스의 각 테이블마다 1 개의 행, 표시pg_statio_all_tables자세한 내용.
PG_STATIO_SYS_TABLE 동일pg_statio_all_tables,
pg_statio_user_tables 동일pg_statio_all_tables,
PG_STATIO_ALL_INDEXES 현재 데이터베이스의 각 인덱스마다 1 개의 행, 표시PG_STATIO_ALL_INDEXES자세한 내용.
PG_STATIO_SYS_INDEXES 동일PG_STATIO_ALL_INDEXES,
PG_STATIO_USER_INDEXES 동일PG_STATIO_ALL_INDEXES,
PG_STATIO_ALL_SEATENCES 현재 데이터베이스의 각 시퀀스마다 1 개의 행, 표시PG_STATIO_ALL_SEATENCES자세한 내용.
PG_STATIO_SYS_SEVESSENCES 동일PG_STATIO_ALL_SEATENCES,
PG_STATIO_USER_SEVERENCES 동일PG_STATIO_ALL_SEATENCES,
PG_STAT_USER_FUNTIONS 각 추적 함수에 대해 하나의 행으로 토토 캔를 표시합니다PG_STAT_USER_FUNTIONS자세한 내용.
PG_STAT_XACT_USER_FUNTIONS 유사PG_STAT_USER_FUNTIONS,not아직 포함PG_STAT_USER_FUNTIONS).
pg_stat_replication WAL Sender 프로세스 당 1 행, 토토 캔를 보여줍니다pg_stat_replication자세한 내용.
PG_STAT_DATABASE_CONFLICTS 데이터베이스 당 하나의 행으로 데이터베이스 전체 토토 캔를 표시합니다PG_STAT_DATABASE_CONFLICTS자세한 내용.

인덱스당 토토 캔는 특히 결정하는 데 유용합니다

thePG_STATIO_보기는 주로입니다PostgreSQL디스크 I/O 핸들 데이터, 그렇지 않은 데이터PostgreSQL버퍼 캐시PostgreSQLI/O 동작은 사용하는 것이 좋습니다PostgreSQL토토 캔 수집가

표 27-2.pg_stat_activity보기

타입 설명
datid OID 데이터베이스의 OID이 백엔드는에 연결되어 있습니다.
datname 이름 데이터베이스 이름이 백엔드는에 연결되어 있습니다.
PID Integer 이 백엔드의 프로세스 ID
useysid OID 이 백엔드에 로그인 한 사용자의 OID
useName 이름 이 백엔드에 로그인 한 사용자 이름
Application_Name 텍스트 이 백엔드에 연결된 응용 프로그램 이름
client_addr inet 이 백엔드에 연결된 클라이언트의 IP 주소. 이 경우
client_hostname 텍스트 Reverse DNS에 의해보고 된대로 연결된 클라이언트의 호스트 이름client_addr. 이 필드는 할 것입니다log_hostnameis
client_port Integer 클라이언트가 통신에 사용하는 TCP 포트 번호-1UNIX 소켓 인 경우
backend_start 시간대가있는 타임 스탬프 이 프로세스가 시작된 시간, 즉 클라이언트가
XACT_START 시간대가있는 타임 스탬프 이 프로세스 시간 '현재 트랜잭션이 시작되었을 때,query_start열.
query_start 시간대가있는 타임 스탬프 현재 활성 쿼리가 시작된 시간 또는 ifStateActive, 마지막 쿼리가 시작되었을 때
State_change 시간대가있는 타임 스탬프 시간 시간State마지막이었습니다
대기 부울 이 백엔드가 현재 잠금을 기다리는 경우.
State 텍스트 이 백엔드의 현재 전체 상태. 가능한 가치는 다음과 같습니다.
  • Active: 백엔드가 실행 중입니다

  • 유휴: 백엔드가 새로운 것을 기다리고 있습니다

  • 트랜잭션의 유휴 상태: 백엔드가 있습니다

  • 트랜잭션의 유휴 (중단): 이것트랜잭션의 유휴 상태,

  • FastPath 함수 호출: 백엔드는입니다

  • 장애인:이 상태가보고된다.track_activities이 백엔드에서 비활성화되었습니다.

쿼리 텍스트 이 백엔드의 최신 쿼리의 텍스트. 만약에StateisActive이것

thepg_stat_activity보기가 있습니다

참고 :the대기andState열은 독립적입니다. 경우 aActiveState, OR대기. 주가 인 경우Activeand대기는 사실입니다. 쿼리가 있음을 의미합니다

표 27-3.PG_STAT_BGWRITER보기

타입 설명
CheckPoints_TIMED bigint 수행 된 예정된 체크 포인트 수
CheckPoints_Req bigint 수행 된 요청 된 검문소 수
Checkpoint_write_time 이중 정밀
checkpoint_sync_time 이중 정밀
buffers_checkpoint bigint 체크 포인트 중에 작성된 버퍼 수
buffers_clean bigint 배경 작성자가 작성한 버퍼 수
MaxWritten_clean bigint 배경 작성자가 청소 스캔을 중지 한 횟수
buffers_backend bigint 백엔드에 의해 직접 작성된 버퍼 수
buffers_backend_fsync bigint 백엔드가 자체적으로 실행 해야하는 횟수fsync전화 (일반적으로 배경 작가
buffers_alloc bigint 할당 된 버퍼 수
stats_reset 시간대가있는 타임 스탬프 이러한 토토 캔가 마지막으로 재설정 된 시간

thePG_STAT_BGWRITERView Will

표 27-4.PG_STAT_DATABASE보기

타입 설명
datid OID 데이터베이스의 OID
datname 이름 이 데이터베이스 이름
Numbackends Integer 현재이 데이터베이스에 연결된 백엔드 수. 이것
xact_commit bigint 이 데이터베이스의 트랜잭션 수
xact_rollback bigint 롤링 된이 데이터베이스의 트랜잭션 수
blks_read bigint 이 데이터베이스에서 읽는 디스크 블록 수
blks_hit bigint 디스크 블록이 이미 버퍼에서 발견되었습니다.
tup_returned bigint 이 데이터베이스의 쿼리에 의해 반환 된 행 수
tup_fetched bigint 이 데이터베이스의 쿼리에 의해 가져온 행 수
tup_inserted bigint 이 데이터베이스의 쿼리에 의해 삽입 된 행 수
tup_updated bigint 이 데이터베이스의 쿼리로 업데이트 된 행 수
tup_deleted bigint 이 데이터베이스의 쿼리로 삭제 된 행 수
갈등 bigint 복구 충돌로 인해 취소 된 쿼리 수PG_STAT_DATABASE_CONFLICTS자세한 내용.)
temp_files bigint 이 데이터베이스의 쿼리로 생성 된 임시 파일 수.log_temp_files설정.
temp_bytes bigint 쿼리로 임시 파일에 작성된 총 데이터 금액log_temp_files설정.
교착 상태 bigint 이 데이터베이스에서 감지 된 교착 상태 수
blk_read_time 이중 정밀 이것에 의해 백엔드에 의해 데이터 파일 블록을 읽는 시간
blk_write_time 이중 정밀 이것에 의해 백엔드에 의해 데이터 파일 블록을 작성하는 데 소요 된 시간
stats_reset 시간대가있는 타임 스탬프 이러한 토토 캔가 마지막으로 재설정 된 시간

thePG_STAT_DATABASE보기

표 27-5.pg_stat_all_tables보기

타입 설명
Relid OID 테이블의 OID
Schemaname 이름 이 테이블이있는 스키마의 이름
Relname 이름 이 테이블의 이름
SEQ_SCAN bigint 이 표에서 시작된 순차적 스캔 수
seq_tup_read bigint 순차적 스캔으로 가져온 라이브 행 수
idx_scan bigint 이 표에서 시작된 인덱스 스캔 수
idx_tup_fetch bigint 인덱스 스캔에 의해 가져온 라이브 행 수
n_tup_ins bigint 삽입 된 행 수
n_tup_upd bigint 업데이트 된 행 수
N_TUP_DEL bigint 삭제 된 행 수
n_tup_hot_upd bigint 행 수 핫 업데이트 (즉, 별도의 인덱스 업데이트 없음
n_live_tup bigint 예상 라이브 행 수
n_dead_tup bigint 죽은 줄의 추정 수
last_vacuum 시간대가있는 타임 스탬프 이 테이블이 수동으로 진공 청소 된 마지막 시간 (진공 Full)
last_autovacuum 시간대가있는 타임 스탬프 이 테이블이 Autovacuum에 의해 진공 청소기를 청소 한 마지막 시간
last_analyze 시간대가있는 타임 스탬프 이 테이블이 수동으로 분석 된 마지막 시간
last_autoanalyze 시간대가있는 타임 스탬프 이 테이블이 Autovacuum에 의해 분석 된 마지막 시간
Vacuum_Count bigint 이 테이블이 수동으로 진공 청소기를 낸 횟수 (진공 Full)
autovacuum_count bigint 이 테이블이 Autovacuum에 의해 진공 청소기를 청소했습니다.
Analyze_Count bigint 이 테이블이 수동으로 분석 된 횟수
autoanalyze_count bigint 이 테이블이 Autovacuum에 의해 분석되었습니다.

thepg_stat_all_tables보기pg_stat_user_tablesandPG_STAT_SYS_TABLE보기가 포함되어 있습니다

표 27-6.PG_STAT_ALL_INDEXES보기

타입 설명
Relid OID 이 색인에 대한 테이블의 OID
IndexRelid OID 이 색인의 OID
Schemaname 이름 스키마 이름이 색인이
Relname 이름 이 색인의 테이블 이름
indexRelName 이름 이 색인의 이름
idx_scan bigint 이 인덱스에서 시작된 인덱스 스캔 수
idx_tup_read bigint 이 인덱스에서 스캔에 의해 반환 된 인덱스 항목 수
idx_tup_fetch bigint 간단한 인덱스 스캔으로 가져온 라이브 테이블 행 수

thePG_STAT_ALL_INDEXES보기PG_STAT_USER_INDEXESandPG_STAT_SYS_INDEXES보기에는 동일합니다

인덱스는 간단한 인덱스 스캔 또는를 통해 사용할 수 있습니다."비트 맵"인덱스 스캔. 비트 맵 스캔에서PG_STAT_ALL_INDEXES.idx_tup_read사용하는 인덱스의 카운트 (s),pg_stat_all_tables.idx_tup_fetch테이블을 계산하지만 그렇습니다PG_STAT_ALL_INDEXES.idx_tup_fetch.

참고 :theidx_tup_readandidx_tup_fetch카운트는 다를 수 있습니다idx_tup_read검색 된 인덱스 항목 카운트idx_tup_fetch카운트

표 27-7.pg_statio_all_tables보기

타입 설명
Relid OID 테이블의 OID
Schemaname 이름 이 테이블이있는 스키마의 이름
Relname 이름 이 테이블의 이름
heap_blks_read bigint 이 테이블에서 읽은 디스크 블록 수
heap_blks_hit bigint 이 테이블의 버퍼 히트 수
idx_blks_read bigint 이 표의 모든 인덱스에서 읽은 디스크 블록 수
idx_blks_hit bigint 이 테이블의 모든 인덱스에서 버퍼 히트 횟수
TOAST_BLKS_READ bigint 이 테이블의 토스트 테이블에서 읽은 디스크 블록 수 (if
TOAST_BLKS_HIT bigint 이 테이블의 토스트 테이블에서 버퍼 히트 수 (있는 경우)
TIDX_BLKS_READ bigint 이 테이블의 토스트 테이블 인덱스에서 읽은 디스크 블록 수
TIDX_BLKS_HIT bigint 이 테이블의 토스트 테이블 인덱스의 버퍼 히트 수 (if

thepg_statio_all_tables보기pg_statio_user_tablesandPG_STATIO_SYS_TABLE보기가 포함되어 있습니다

표 27-8.PG_STATIO_ALL_INDEXES보기

타입 설명
Relid OID 이 색인에 대한 테이블의 OID
IndexRelid OID 이 색인의 OID
Schemaname 이름 스키마 이름이 색인이
Relname 이름 이 색인의 테이블 이름
indexRelName 이름 이 색인의 이름
idx_blks_read bigint 이 인덱스에서 읽은 디스크 블록 수
idx_blks_hit bigint 이 인덱스의 버퍼 히트 수

thePG_STATIO_ALL_INDEXESView WillPG_STATIO_USER_INDEXESandPG_STATIO_SYS_INDEXES보기에는 동일합니다

표 27-9.PG_STATIO_ALL_SEATENCES보기

타입 설명
Relid OID 시퀀스의 OID
Schemaname 이름 스키마 이름이 시퀀스가
Relname 이름 이 시퀀스의 이름
blks_read bigint 이 시퀀스에서 읽은 디스크 블록 수
blks_hit bigint 이 시퀀스의 버퍼 히트 수

thePG_STATIO_ALL_SEATENCES보기

표 27-10.PG_STAT_USER_FUNTIONS보기

타입 설명
funcid OID 함수의 OID
Schemaname 이름 스키마 이름이 함수는
funcName 이름 이 함수의 이름
전화 bigint 이 기능이 호출 된 횟수
Total_Time 이중 정밀 이 기능 및 기타 모든 기능에 소요되는 총 시간
self_time 이중 정밀 이 기능 자체에서 소비 된 총 시간은 다른 것을 포함하지 않습니다.

thePG_STAT_USER_FUNTIONS보기track_functions매개 변수 제어 정확히 어떤 함수가 추적되는지

표 27-11.pg_stat_replication보기

타입 설명
PID Integer WAL 발신자 프로세스의 프로세스 ID
useysid OID 이 WAL 발신자 프로세스에 로그인 한 사용자의 OID
useName 이름 이 WAL 발신자 프로세스에 로그인 한 사용자 이름
Application_Name 텍스트 이 WAL에 연결된 응용 프로그램 이름
client_addr inet 이 WAL 발신자에 연결된 클라이언트의 IP 주소. 이 경우
client_hostname 텍스트 Reverse DNS에 의해보고 된대로 연결된 클라이언트의 호스트 이름client_addr. 이 필드는 할 것입니다log_hostnameis
client_port Integer 클라이언트가 통신에 사용하는 TCP 포트 번호-1UNIX 소켓 인 경우
backend_start 시간대가있는 타임 스탬프 이 프로세스가 시작된 시간, 즉 클라이언트시기
State 텍스트 현재 Wal Sender State
sent_location 텍스트 이 연결에서 전송 된 마지막 트랜잭션 로그 위치
쓰기 _location 텍스트 이 대기로 디스크에 기록 된 마지막 트랜잭션 로그 위치
flush_location 텍스트 이 대기로 디스크로 플러시 된 마지막 트랜잭션 로그 위치
Replay_Location 텍스트 마지막 트랜잭션 로그 위치가 데이터베이스 켜기로 재생되었습니다
sync_priority Integer 이 대기 서버의 우선 순위는
sync_state 텍스트 이 대기 서버의 동기 상태

thepg_stat_replication보기

표 27-12.PG_STAT_DATABASE_CONFLICTS보기

타입 설명
datid OID 데이터베이스의 OID
datname 이름 이 데이터베이스 이름
cl_tablespace bigint 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다.
cl_lock bigint 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다.
COLL_SNAPSHOT bigint 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다.
cl_bufferpin bigint 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다.
cl_deadlock bigint 이 데이터베이스의 쿼리 수는 취소 된 것으로 취소되었습니다.

thePG_STAT_DATABASE_CONFLICTS보기

27.2.3. 통계 기능

토토 캔를 보는 다른 방법은 글을 쓰면 설정할 수 있습니다.PSQL할 수 있습니다\ d+ pg_stat_activity.) 액세스

토토 캔 수집과 관련된 추가 기능이 나열되어 있습니다테이블.

표 27-13. 추가 토토 캔 기능

기능 반환 유형 설명
pg_backend_pid () Integer 서버 프로세스의 프로세스 ID는 전류를 처리합니다
pg_stat_get_activity(Integer) Setof Record 백엔드에 대한 정보 기록을 반환합니다.NULL지정되어 있습니다. 필드가 돌아 왔습니다pg_stat_activityView.
PG_STAT_CLEAR_SNAPSHOT () void 현재 통계를 버립니다
PG_STAT_RESET () void 현재 데이터베이스의 모든 통계 카운터를 0으로 재설정합니다.
PG_STAT_RESET_SHARED(텍스트) void 일부 클러스터 전체 토토 캔 카운터를 0으로 재설정하십시오PG_STAT_RESET_SHARD ( 'BGWRITER')전부를 제로 할 것입니다PG_STAT_BGWRITERView.
pg_stat_reset_single_table_counters(OID) void 현재의 단일 테이블 또는 인덱스에 대한 통계 재설정
pg_stat_reset_single_function_counters(OID) void 현재 데이터베이스의 단일 함수에 대한 통계 재설정

pg_stat_get_activity,pg_stat_activity보기, 레코드 세트를 반환합니다테이블. 이러한 액세스 기능은 백엔드 ID 번호를 사용합니다pg_stat_get_backend_idset각 활성 각각에 대해 하나의 행을 생성하는 편리한 방법을 제공합니다.PIDs 및 모든의 현재 쿼리

PG_STAT_GET_BACKEND_PID (S.BACKENDID)를 PID로 선택하십시오.

표 27-14. 백 커드 당 통계 기능

기능 반환 유형 설명
pg_stat_get_backend_idset () 정수 세트 현재 활성 백엔드 ID 번호 세트 (1에서
pg_stat_get_backend_activity (정수) 텍스트 이 백엔드의 가장 최근 쿼리 텍스트
PG_STAT_GET_BACKEND_ACTIVITY_START (Integer) 시간대가있는 타임 스탬프 가장 최근의 쿼리가 시작된 시간
pg_stat_get_backend_client_addr (정수) inet 이 백엔드에 연결된 클라이언트의 IP 주소
pg_stat_get_backend_client_port (정수) Integer 클라이언트가 커뮤니케이션에 사용하는 TCP 포트 번호
pg_stat_get_backend_dbid (정수) OID 데이터베이스의 OID이 백엔드는에 연결되어 있습니다.
pg_stat_get_backend_pid (정수) Integer 이 백엔드의 프로세스 ID
PG_STAT_GET_BACKEND_START (Integer) 시간대가있는 타임 스탬프 이 과정이 시작된 시간
PG_STAT_GET_BACKEND_USERID (Integer) OID 이 백엔드에 로그인 한 사용자의 OID
pg_stat_get_backend_waiting (정수) 부울 이 백엔드가 현재 잠금을 기다리는 경우.
PG_STAT_GET_BACKEND_XACT_START (Integer) 시간대가있는 타임 스탬프 현재 거래가 시작된 시간