the범퍼카 토토
모듈은 서버에서 실행 한 모든 SQL 문의 실행 통계를 추적하는 수단을 제공합니다.
추가하여 모듈을로드해야합니다범퍼카 토토
toshared_preload_librariesinon
, 추가 공유 메모리가 필요하기 때문입니다. 이것은 모듈을 추가하거나 제거하기 위해 서버 재시작이 필요하다는 것을 의미합니다.
언제범퍼카 토토
로드되어 서버의 모든 데이터베이스에서 통계를 추적합니다. 이러한 통계에 액세스하고 조작하기 위해 모듈은보기를 제공합니다.범퍼카 토토
및 유틸리티 기능범퍼카 토토_reset
and범퍼카 토토
. 이들은 전 세계적으로 사용할 수 없지만의 특정 데이터베이스에 대해 활성화 할 수 있습니다.확장 생성 범퍼카 토토
.
범퍼카 토토
보기모듈에 의해 수집 된 통계는이라는 뷰를 통해 제공됩니다.범퍼카 토토
. 이보기에는 각각의 별개의 데이터베이스 ID, 사용자 ID 및 쿼리 ID에 대해 하나의 행이 포함됩니다 (모듈이 추적 할 수있는 최대의 별개의 명령문 수까지).테이블 F.22.
표 F.22. 범퍼카 토토
열
이름 | 타입 | 참조 | 설명 |
---|---|---|---|
userID |
OID |
|
진술을 실행 한 사용자의 OID |
dbid |
OID |
|
진술이 실행 된 데이터베이스의 OID |
QueryId |
bigint |
명령문의 구문 분석 트리에서 계산 된 내부 해시 코드 | |
쿼리 |
텍스트 |
대표 성명서의 텍스트 | |
전화 |
bigint |
실행 된 횟수 | |
Total_Time |
이중 정밀도 |
진술에 소요 된 총 시간, 밀리 초 | |
min_time |
이중 정밀도 |
진술서에 소비 된 최소 시간, 밀리 초 | |
max_time |
이중 정밀도 |
진술에 소요 된 최대 시간, 밀리 초 | |
Mean_Time |
이중 정밀도 |
진술에 소요되는 평균 시간, 밀리 초 | |
stddev_time |
이중 정밀도 |
인구 표준 성명서에 소요되는 시간의 인구 표준 편차, 밀리 초 | |
행 |
bigint |
성명서에 의해 검색되거나 영향을받는 총 행 수 | |
shared_blks_hit |
bigint |
성명서별 공유 블록 캐시의 총 수 | |
shared_blks_read |
bigint |
성명서에 의해 읽은 총 공유 블록 수 | |
shared_blks_dirtied |
bigint |
성명서에 의해 더러워진 총 공유 블록의 총 수 | |
shared_blks_written |
bigint |
성명서에 의해 작성된 총 공유 블록 수 | |
local_blks_hit |
bigint |
성명서별 로컬 블록 캐시의 총 수치 | |
local_blks_read |
bigint |
성명서에 의해 읽은 총계 블록 수 | |
local_blks_dirtied |
bigint |
성명서에 의해 더러워진 총 지역 블록의 총 수 | |
local_blks_written |
bigint |
진술서에 의해 작성된 총계 블록 수 | |
temp_blks_read |
bigint |
성명서에 의해 읽은 총 임시 블록 수 | |
temp_blks_written |
bigint |
문에 의해 작성된 총 임시 블록 수 | |
blk_read_time |
이중 정밀도 |
성명서가 블록을 읽는 데 소비 된 총 시간 (iftrack_io_timing활성화되어 있고 그렇지 않으면 0) | |
blk_write_time |
이중 정밀도 |
성명서가 블록을 쓰는 데 소비 된 총 시간 (iftrack_io_timing활성화되어 있고 그렇지 않으면 0) |
보안상의 이유로, 슈퍼업자와 회원 만PG_READ_ALL_STATS
역할은 SQL 텍스트와를 볼 수 있습니다.QueryId
다른 사용자가 실행 한 쿼리. 그러나 다른 사용자는 데이터베이스에보기가 설치된 경우 통계를 볼 수 있습니다.
Plannable Queries (즉,select
, 삽입
, 업데이트
및삭제
)) 단일로 결합범퍼카 토토
내부 해시 계산에 따라 동일한 쿼리 구조가있을 때마다 항목. 일반적으로 쿼리에 나타나는 문자 상수의 값을 제외하고 의미 적으로 동등한 경우 두 쿼리 가이 목적에 대해 동일하게 간주됩니다.
쿼리를 다른 쿼리와 일치시키기 위해 상수의 값이 무시되면 상수는와 같은 매개 변수 기호로 대체됩니다.$1
, in범퍼카 토토
디스플레이. 나머지 쿼리 텍스트는 특정 쿼리의 쿼리입니다.QueryId
범퍼카 토토
Entry.
경우에 따라 눈에 띄게 다른 텍스트가있는 쿼리가 단일로 병합 될 수 있습니다범퍼카 토토
입력. 일반적으로 이것은 의미 적으로 동등한 쿼리에 대해서만 발생하지만 해시 충돌 가능성이 적 으면 관련없는 쿼리가 하나의 항목으로 병합됩니다.
이후QueryId
해시 값은 쿼리의 패스 분석 후 표현에 따라 계산됩니다. 반대도 가능합니다. 동일한 텍스트가있는 쿼리는 별도의 항목으로 나타날 수 있습니다.search_path
설정.
소비자범퍼카 토토
사용하기를 원할 수 있습니다QueryId
(아마도dbid
anduserID
) 쿼리 텍스트보다 각 항목에 대해보다 안정적이고 신뢰할 수있는 식별자로서. 그러나의 안정성에 대한 보장이 제한되어 있음을 이해하는 것이 중요합니다.QueryId
해시 값. 식별자는 패스트리 분석 후 트리에서 파생되므로 그 값은 무엇 보다도이 표현에 나타나는 내부 객체 식별자의 함수입니다.범퍼카 토토
두 쿼리의 실행 사이에 삭제되고 재현 된 테이블을 참조하면 두 개의 명백한 쿼리가 뚜렷하다고 생각합니다. 해싱 프로세스는 또한 기계 아키텍처 및 플랫폼의 다른 측면의 차이에 민감합니다.QueryId
의 주요 버전에서 안정적입니다postgresql.
경험상QueryId
값은 기본 서버 버전과 카탈로그 메타 데이터 세부 정보가 정확히 동일하게 유지되는 한 안정적이고 비교할 수 있다고 가정 할 수 있습니다. 물리적 WAL 리플레이를 기반으로 복제에 참여하는 두 개의 서버가 동일 할 수 있습니다QueryId
동일한 쿼리의 값. 그러나 논리적 복제 체계는 모든 관련 세부 사항에서 복제본을 동일하게 유지하겠다고 약속하지 않으므로QueryId
일련의 논리적 복제품에 걸쳐 비용을 축적하는 데 유용한 식별자가 아닙니다. 의심스러운 경우 직접 테스트를 권장합니다.
대표 쿼리 텍스트에서 상수를 대체하는 데 사용되는 매개 변수 기호는 다음 숫자에서 가장 높은 다음 숫자에서 시작합니다$
n
원래 쿼리 텍스트의 매개 변수 또는$1
없다면. 어떤 경우에는이 번호에 영향을 미치는 숨겨진 매개 변수 기호가있을 수 있습니다.pl/pgsql숨겨진 매개 변수 기호를 사용하여 함수 로컬 변수 값을 쿼리에 삽입하여 apl/pgsql문장i + 1을 J로 선택하십시오
|선택 i + $ 2
.
대표 쿼리 텍스트는 외부 디스크 파일에 보관되어 공유 메모리를 소비하지 않습니다. 따라서 매우 긴 쿼리 텍스트조차도 성공적으로 저장할 수 있습니다.범퍼카 토토
쿼리 텍스트를 버릴 수 있습니다.범퍼카 토토
보기가 표시됩니다쿼리
필드, 각각의 통계는 각각QueryId
보존됩니다. 이런 일이 발생하면 감소를 고려하십시오범퍼카 토토
재발을 방지하기 위해.
범퍼카 토토_RESET () 반환 void
범퍼카 토토_reset
지금까지 수집 한 모든 통계 폐기범퍼카 토토
. 기본적 으로이 기능은 슈퍼 사용자 만 실행할 수 있습니다.
범퍼카 토토 (ShowText Boolean) 레코드를 반환
the범퍼카 토토
보기가 지명 된 함수의 관점에서 정의됩니다범퍼카 토토
. 고객이 전화를 걸 수 있습니다범퍼카 토토
직접 기능하고 지정하여showtext : = false
쿼리 텍스트를 생략하십시오 (즉,out
보기에 해당하는 인수쿼리
열이 널을 반환합니다). 이 기능은 불확실한 길이의 쿼리 텍스트를 반복적으로 검색하는 오버 헤드를 피할 수있는 외부 도구를 지원하기위한 것입니다.범퍼카 토토
자체는 필요에 따라 쿼리 텍스트를 검색합니다. 서버는 파일에 쿼리 텍스트를 저장하기 때문에이 접근법은 물리적 I/O를 반복적으로 조사하기 위해를 줄일 수 있습니다.범퍼카 토토
데이터.
범퍼카 토토
(Integer
)범퍼카 토토
는 모듈에서 추적하는 최대 명령문 수입니다 (즉,의 최대 행 수범퍼카 토토
보기). 그보다 더 뚜렷한 진술이 관찰되면, 가장 잘 수행되지 않은 진술에 대한 정보는 폐기됩니다.
범퍼카 토토
(enum
)범퍼카 토토
모듈에 의해 계산되는 진술을 제어합니다. 지정TOP
최상위 진술을 추적하려면 (클라이언트가 직접 발행 한 것),all
중첩 된 진술 (예 : 함수 내에서 호출 된 진술) 또는도 추적하려면없음
명령문 통계 수집을 비활성화합니다. 기본값은입니다.TOP
. 수퍼 유저만이 설정을 변경할 수 있습니다.
범퍼카 토토.track_utility
(부울
)범퍼카 토토.track_utility
모듈에서 유틸리티 명령을 추적하는지 여부를 제어합니다. 유틸리티 명령은 이외의 모든 명령입니다.select
, 삽입
, 업데이트
and삭제
. 기본값은입니다.on
. 수퍼 유저만이 설정을 변경할 수 있습니다.
범퍼카 토토
(부울
)범퍼카 토토
서버 종료에서 명령문 통계를 저장할지 여부를 지정합니다. 경우off
그런 다음 통계는 종료시 저장되지 않거나 서버 시작시 다시로드되지 않습니다. 기본값은입니다.on
. 이 매개 변수는에서만 설정할 수 있습니다.on
파일 또는 서버 명령 줄에.
모듈에는에 비례하여 추가 공유 메모리가 필요합니다.범퍼카 토토
. 이 메모리는 모듈이로드 될 때마다 소비됩니다.범퍼카 토토
로 설정되었습니다없음
.
이 매개 변수는 설정해야합니다.on
. 일반적인 사용법은 다음과 같습니다.
# postgresql.conf
벤치 =# 선택 범퍼카 토토_reset ();
Takahiro Itagaki<itagaki.takahiro@oss.ntt.co.jp
. Peter Geoghegan에 의해 추가 된 쿼리 정규화<peter@2ndquadrant.com
.