postgresql's스포츠 토토 사이트 수집가는 지원하는 서브 시스템입니다 서버 활동에 대한 정보 수집 및보고. 현재 컬렉터는 테이블 및 인덱스에 대한 액세스를 계산할 수 있습니다. 디스크 블록 및 개별 열 용어에서. 또한 지원합니다 현재 다른 사람이 실행중인 정확한 쿼리를 결정합니다 서버 프로세스.
스포츠 토토 사이트 수집이 쿼리에 약간의 오버 헤드가 추가되므로 실행, 시스템은 수집 여부를 구성 할 수 있습니다. 정보를 수집하십시오. 이것은 구성에 의해 제어됩니다 일반적으로 설정된 변수postgresql.conf(참조섹션 3.4설정에 대한 자세한 내용 구성 변수).
변수stats_start_collector
로 설정해야합니다true스포츠 토토 사이트 수집가에게
전혀 출시됩니다. 이것은 기본값이며 권장됩니다
설정이지만 관심이 없으면 꺼질 수 있습니다.
통계 및 마지막 오버 헤드 방울마다 짜내고 싶습니다.
(그러나 저축은 적을 것입니다.)
서버가 실행 중에 옵션을 변경할 수 없습니다.
변수stats_command_string
, stats_block_level
및stats_row_level
정보의 양을 제어하십시오
실제로 수집가에게 보내져서
런타임 오버 헤드가 발생합니다. 이들은 각각 여부를 결정합니다
서버 프로세스는 현재 명령 문자열을 보냅니다.
디스크 블록 레벨 액세스 통계 및로드 레벨 액세스
수집가에 대한 통계. 일반적으로 이러한 변수는 설정됩니다
안에postgresql.conf가 적용되도록
모든 서버 프로세스에 대해서는하지만 켜거나 켜거나
를 사용하여 개별 서버 프로세스에서 꺼짐SET명령. (일반 사용자를 방지하기 위해
관리자로부터 활동을 숨기고 슈퍼업자 만
이러한 변수를로 변경할 수 있습니다.set.)
중요 :변수 이후
stats_command_string
,stats_block_level
및stats_row_level
기본값으로false, 실제로 스포츠 토토 사이트는 수집되지 않습니다 기본 구성에서. 하나 이상을 돌려야합니다 당신이 유용한 결과를 얻기 전에 스포츠 토토 사이트 표시 기능.
결과를 보여주기 위해 몇 가지 사전 정의 된 뷰를 사용할 수 있습니다 스포츠 토토 사이트 수집,테이블 10-1. 또는 The를 사용하여 사용자 정의보기를 구축 할 수 있습니다 기본 스포츠 토토 사이트 기능.
통계를 사용하여 현재 활동을 모니터링 할 때
정보가 업데이트되지 않는다는 것을 인식하는 것이 중요합니다
순간적으로. 각 개별 서버 프로세스는 새로 전송됩니다
다른 것을 기다리기 직전에 수집가에 대한 액세스 계산
클라이언트 명령; 따라서 여전히 진행중인 쿼리는 영향을 미치지 않습니다
표시된 총계. 또한 수집가 자체는 새로운 것을 방출합니다
총 1 회 총 1 회pgstat_stat_interval
milliseconds (500 by
기본). 따라서 표시된 총계는 실제보다 뒤떨어집니다
활동.
또 다른 중요한 점은 서버 프로세스가 이러한 통계를 표시하도록 요청하면 먼저 가장 최근의 총계는 수집기 프로세스에 의해 방출되었습니다. 그럼 이 스냅 샷을 모든 통계적 뷰에 계속 사용하고 현재 거래가 끝날 때까지 기능합니다. 그래서 계속해서 통계는 변하지 않는 것으로 보입니다. 현재 거래. 이것은 버그가 아닌 기능입니다 통계에서 몇 가지 쿼리를 수행 할 수 있으며 숫자가 걱정되지 않고 결과를 상관시킵니다 당신 아래에서 변화합니다. 그러나 새로운 결과를보고 싶다면 각 쿼리마다 외부에서 쿼리를해야합니다. 거래 블록.
표 10-1. 표준 스포츠 토토 사이트보기
보기 | 설명 |
---|---|
pg_stat_activity | 서버 당 1 행, 프로세스 표시id, 데이터베이스, 사용자, 그리고 현재 쿼리. 현재 쿼리 열은 전용입니다 슈퍼업자가 사용할 수 있습니다. 다른 사람들에게는 널로 읽습니다. (수집가의보고 지연으로 인해 현재 쿼리는 장기 실행을 위해서만 최신입니다 쿼리.) |
PG_STAT_DATABASE | 데이터베이스 당 1 행, 활성 수를 보여줍니다 백엔드, 총 거래 및 총 거래 해당 데이터베이스로 돌아가서 총 디스크 블록은 읽습니다 총 버퍼 히트 수 (즉, 블록 읽기 요청 이미 버퍼에서 블록을 찾아서 피합니다 은닉처). |
pg_stat_all_tables | 현재 데이터베이스의 각 테이블에 대해 총계 순차 및 인덱스 스캔의 수, 총 수 각 유형의 스캔에 의해 반환 된 튜플과 총계 튜플 삽입, 업데이트 및 삭제. |
PG_STAT_SYS_TABLE | 동일pg_stat_all_tables시스템 테이블이 표시됩니다. |
pg_stat_user_tables | 동일pg_stat_all_tables사용자 테이블이 표시됩니다. |
PG_STAT_ALL_INDEXES | 현재 데이터베이스의 각 인덱스에 대해 총계 해당 인덱스를 사용한 인덱스 스캔 횟수 인덱스 튜플의 수와 수의 수 힙 튜플을 성공적으로 가져옵니다. (이것은 적을 수 있습니다 만료 된 힙을 가리키는 인덱스 항목이있을 때 튜플.) |
PG_STAT_SYS_INDEXES | 동일PG_STAT_ALL_INDEXES시스템 테이블의 인덱스가 표시됩니다. |
PG_STAT_USER_INDEXES | 동일PG_STAT_ALL_INDEXES사용자 테이블의 인덱스가 표시됩니다. |
pg_statio_all_tables | 현재 데이터베이스의 각 테이블에 대해 총계입니다 해당 테이블에서 읽은 디스크 블록 수, 숫자 버퍼 히트, 디스크 블록의 수를 읽고 버퍼는 해당 테이블의 모든 인덱스에서 수많은 디스크 블록이 읽기 및 버퍼 히트에서 테이블의 보조 토스트 테이블 (있는 경우) 및 숫자 토스트의 디스크 블록 읽기 및 버퍼 히트 테이블의 색인. |
PG_STATIO_SYS_TABLE | 동일pg_statio_all_tables를 제외하고 시스템 테이블 만 표시됩니다. |
pg_statio_user_tables | 동일pg_statio_all_tables를 제외하고 사용자 테이블 만 표시됩니다. |
PG_STATIO_ALL_INDEXES | 현재 데이터베이스의 각 인덱스에 대해 숫자 해당 색인의 디스크 블록 읽기 및 버퍼 히트. |
PG_STATIO_SYS_INDEXES | 동일PG_STATIO_ALL_INDEXES를 제외하고 시스템 테이블의 인덱스 만 표시됩니다. |
PG_STATIO_USER_INDEXES | 동일PG_STATIO_ALL_INDEXES를 제외하고 사용자 테이블의 인덱스 만 표시됩니다. |
PG_STATIO_ALL_SEATENCES | 현재 데이터베이스의 각 시퀀스 객체에 대해, 디스크 블록의 수는 읽기 및 버퍼 히트입니다. 순서. |
PG_STATIO_SYS_SEVESSENCES | 동일PG_STATIO_ALL_SEATENCES를 제외하고 시스템 시퀀스 만 표시됩니다. (현재, 시스템 없음 시퀀스가 정의 되므로이보기는 항상입니다 비어 있는.) |
PG_STATIO_USER_SEATENCES | 동일PG_STATIO_ALL_SEATENCES를 제외하고 사용자 시퀀스 만 표시됩니다. |
인덱스 당 스포츠 토토 사이트는 특히 유용합니다 사용중인 인덱스와 얼마나 효과적인 지 인덱스를 결정하십시오. 이다.
thePG_STATIO_보기는입니다 버퍼의 효과를 결정하는 데 주로 유용합니다 은닉처. 실제 디스크 읽기 수가 훨씬 작을 때 버퍼 히트 수보다 캐시가 만족 스럽습니다. 커널 호출을 호출하지 않고 대부분의 요청을 읽습니다.
통계를 보는 다른 방법은 동일한 기본 통계 액세스를 사용하는 쿼리 작성 이러한 표준보기와 같은 기능. 이러한 기능은 있습니다 에 나열됨테이블 10-2. 다트베이스 별 액세스 기능은 데이터베이스를 수락합니다 OID보고 할 데이터베이스를 식별합니다. 테이블 당 및 인덱스 당 함수는 테이블 또는 색인 OID를 수락합니다 ( 현재 데이터베이스의 테이블 및 인덱스는 다음과 같이 볼 수 있습니다. 이 기능). 백크 당 액세스 함수는 a를 수락합니다 백엔드 ID 번호는 1에서 현재 활동적인 백엔드.
표 10-2. 스포츠 토토 사이트 액세스 기능
기능 | 반환 유형 | 설명 |
---|---|---|
pg_stat_get_db_numbackends (OID) |
정수 | 데이터베이스의 활성 백엔드 수 |
PG_STAT_GET_DB_XACT_COMMIT (OID) |
bigint | 데이터베이스에 커밋 된 트랜잭션 |
pg_stat_get_db_xact_rollback (OID) |
bigint | 데이터베이스에서 트랜잭션이 롤백되었습니다 |
pg_stat_get_db_blocks_fetched (OID) |
bigint | 디스크 블록 페치 요청 수 데이터 베이스 |
PG_STAT_GET_DB_BLOCKS_HIT (OID) |
bigint | 캐시에 발견 된 디스크 블록 요청 수 데이터 베이스 |
PG_STAT_GET_NUMSCANS (OID) |
bigint | 인수가 a 테이블 또는 인수가있을 때 수행 된 인덱스 스캔 수 인덱스 |
pg_stat_get_tuples_returned (OID) |
bigint | 순차 스캔에 의해 읽는 튜플 수 인수는 테이블이거나 인덱스 튜플의 수입니다. 인수가 색인 일 때 |
pg_stat_get_tuples_fetched (OID) |
bigint | 유효한 (유효한) 테이블 튜플이 가져온 수 인수가 테이블이거나 가져 오면 순차적 스캔 인수가 색인 |
PG_STAT_GET_TUPLES_INSERTED (OID) |
bigint | 테이블에 삽입 된 튜플 수 |
PG_STAT_GET_TUPLES_UPDATED (OID) |
bigint | 표에 업데이트 된 튜플 수 |
pg_stat_get_tuples_deleted (OID) |
bigint | 표에서 삭제 된 튜플 수 |
pg_stat_get_blocks_fetched (OID) |
bigint | 테이블 또는 색인 |
PG_STAT_GET_BLOCKS_HIT (OID) |
bigint | 캐시에 발견 된 디스크 블록 요청 수 테이블 또는 색인 |
pg_stat_get_backend_idset () |
정수 세트 | 현재 활성 백엔드 ID 세트 (1 ~ N 여기서 n은 활성 백엔드의 수)). 사용법을 참조하십시오 아래 예. |
pg_backend_pid () |
Integer | 첨부 된 백엔드의 프로세스 ID |
pg_stat_get_backend_pid (정수) |
Integer | 모든 백엔드 프로세스의 프로세스 ID |
pg_stat_get_backend_dbid (Integer) |
OID | 백엔드 프로세스의 데이터베이스 ID |
pg_stat_get_backend_userid (정수) |
OID | 백엔드 프로세스의 사용자 ID |
pg_stat_get_backend_activity (Integer) |
텍스트 | 현재 백엔드 프로세스의 현재 쿼리 (발신자 인 경우 null 슈퍼업자가 아님) |
PG_STAT_RESET () |
부울 | 현재 수집 된 모든 통계 재설정. |
참고 :blocks_fetched 마이너스 블록 _hit가 제공합니다 커널 수
read ()
전화 표, 인덱스 또는 데이터베이스에 대한 발행; 그러나 실제 물리적 읽기의 수는 일반적으로 낮습니다 커널 수준 버퍼링.
함수pg_stat_get_backend_idset
제공 a
각 활성 백엔드마다 하나의 행을 생성하는 편리한 방법. 을 위한
예,를 보여 주려면PIDs
및 모든 백엔드의 현재 쿼리 :
procpid로 pg_stat_get_backend_pid (s.backendid)를 선택하십시오. pg_stat_get_backend_activity (s.backendid)는 current_query입니다 from (select pg_stat_get_backend_idset () as backendid)로 s;