이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : F.30. 토토 사이트 - SQL 계획 및 실행의 통계 추적버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

F.29. 와이즈 토토

와이즈 토토모듈 모든 SQL의 실행 통계를 추적하는 수단을 제공합니다. 서버에 의해 실행되는 명령문입니다.

모듈을 추가하여 로드해야 합니다.와이즈 토토shared_preload_librariesinpostgresql.conf, 필요하기 때문에 추가 공유 메모리. 이는 서버를 다시 시작한다는 의미입니다. 모듈을 추가하거나 제거하는 데 필요합니다.

F.29.1. 그만큼와이즈 토토보기

모듈에 의해 수집된 통계는 다음을 통해 제공됩니다. 이름이 지정된 시스템 뷰와이즈 토토. 이 보기에는 다음이 포함되어 있습니다. 각각의 고유한 쿼리 텍스트, 데이터베이스 ID 및 사용자 ID에 대한 행(위쪽) 모듈이 처리하는 최대 개별 명령문 수 추적할 수 있습니다). 뷰의 열은 다음과 같습니다.테이블 F-20.

표 F-20.와이즈 토토

이름 유형 참고자료 설명
사용자 ID oid pg_authid.oid 문을 실행한 사용자의 OID
dbid oid pg_database.oid 문이 있는 데이터베이스의 OID 실행됨
질의 텍스트 성명서 텍스트(최대track_activity_query_size바이트)
호출 비긴트 실행 횟수
total_time 배정밀도 문에 소요된 총 시간(초)
비긴트 검색되거나 영향을 받은 총 행 수 성명
shared_blks_hit 비긴트 다음에 의해 적중된 공유 블록의 총 수 성명
shared_blks_read 비긴트 다음이 읽은 공유 블록의 총 수 성명
shared_blks_write 비긴트 다음에 의해 작성된 공유 블록의 총 수 성명
local_blks_hit 비긴트 에 의해 적중된 로컬 블록의 총 수 성명
local_blks_read 비긴트 다음이 읽은 로컬 블록의 총 수 성명
local_blks_write 비긴트 다음에 의한 총 로컬 블록 쓰기 수 성명
temp_blks_read 비긴트 다음에 의해 읽은 임시 블록의 총 수 성명
temp_blks_write 비긴트 다음에 의한 총 임시 블록 쓰기 수 성명

이 보기 및 기능와이즈 토토_reset만 사용 가능 데이터베이스에서는 다음에 의해 특별히 설치되었습니다. 실행 중와이즈 토토.sql설치 스크립트. 그러나 통계는 모든 항목에서 추적됩니다. 서버의 데이터베이스는 다음과 같습니다.와이즈 토토모듈이 뷰의 존재 여부에 관계없이 서버.

보안상의 이유로 슈퍼유저가 아닌 사람은 볼 수 없습니다. 다른 사용자가 실행한 쿼리 텍스트. 그들은 볼 수 있습니다 그러나 통계에 보기가 설치된 경우에는 데이터 베이스.

문은 다음과 같은 경우 동일한 것으로 간주됩니다. 라인 밖의 값에 관계없이 동일한 텍스트 명령문에 사용되는 매개변수입니다. 라인 외부 매개변수 사용 진술을 그룹화하는 데 도움이 될 것이며 통계가 더 유용합니다.

F.29.2. 기능

와이즈 토토_reset() 무효를 반환합니다

와이즈 토토_reset지금까지 수집된 모든 통계를 삭제합니다.와이즈 토토. 기본적으로 이 함수는 슈퍼유저만 실행할 수 있습니다.

F.29.3. 구성 매개변수

와이즈 토토.max (정수)

와이즈 토토.max이것은 모듈이 추적하는 최대 명령문 수(예: 의 최대 행 수와이즈 토토보기). 더 많은 경우 관찰된 것과는 다른 진술, 정보 가장 적게 실행된 명령문은 폐기됩니다. 그만큼 기본값은 1000입니다. 이 매개변수는 에서만 설정할 수 있습니다. 서버 시작.

와이즈 토토.track (열거형)

와이즈 토토.track모듈이 계산하는 명령문을 제어합니다. 지정하다맨 위로최상위 수준 추적 명세서(고객이 직접 발행한 명세서),전체또한 중첩된 문(예: 함수 내에서 호출된 명령문으로) 또는없음비활성화합니다. 기본값은맨 위로. 슈퍼유저만 변경할 수 있습니다. 이 설정입니다.

와이즈 토토.track_utility (부울)

와이즈 토토.track_utility제어 유틸리티 명령이 모듈에 의해 추적되는지 여부. 유틸리티 명령은 다음을 제외한 모든 명령입니다.선택, 삽입, 업데이트그리고삭제. 기본값은켜짐. 슈퍼유저만 이를 변경할 수 있습니다. 환경.

와이즈 토토.save (부울)

와이즈 토토.save전체에 걸쳐 명령문 통계를 저장할지 여부를 지정합니다. 서버 종료. 그렇다면꺼짐그러면 종료 시 통계가 저장되지 않으며 종료 시 다시 로드되지 않습니다. 서버 시작. 기본값은켜짐. 이 매개변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령줄.

모듈에는 다음과 같은 추가 공유 메모리가 필요합니다. 에 대한와이즈 토토.max * track_activity_query_size바이트. 이 메모리는 모듈이 실행될 때마다 소비됩니다. 로드된 경우에도 마찬가지입니다.와이즈 토토.track다음으로 설정됨없음.

이러한 매개변수를 설정하려면postgresql.conf파일, 추가해야 합니다와이즈 토토custom_variable_classes. 일반적인 사용법은 다음과 같습니다:

# postgresql.conf
shared_preload_libraries = '와이즈 토토'

custom_variable_classes = '와이즈 토토'
와이즈 토토.max = 10000
와이즈 토토.track = 모두

F.29.4. 샘플 출력

bench=# SELECT 와이즈 토토_reset();

$ pgbench -i 벤치
$ pgbench -c10 -t300 -M 준비된 벤치

벤치=# \x
벤치=# SELECT 쿼리, 호출, total_time, 행, 100.0 * shared_blks_hit /
               nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
          FROM 와이즈 토토 ORDER BY total_time DESC LIMIT 5;
-[ 기록 1 ]---------------------------------------------------------
쿼리 | 업데이트 pgbench_branches SET bbalance = bbalance + $1 WHERE bid = $2;
전화 | 3000
총_시간 | 9.60900100000002
행 | 2836
히트_퍼센트 | 99.9778970000200936
-[ 기록 2 ]---------------------------------------------------------
쿼리 | 업데이트 pgbench_tellers SET tbalance = tbalance + $1 WHERE tid = $2;
전화 | 3000
총_시간 | 8.015156
행 | 2990
히트_퍼센트 | 99.9731126579631345
-[ 기록 3 ]---------------------------------------------------------
쿼리 | stdin에서 pgbench_accounts를 복사하세요.
전화 | 1
총_시간 | 0.310624
행 | 100000
히트_퍼센트 | 0.30395136778115501520
-[ 기록 4 ]---------------------------------------------------------
쿼리 | 업데이트 pgbench_accounts SET abalance = abalance + $1 WHERE 보조 = $2;
전화 | 3000
총_시간 | 0.271741999999997
행 | 3000
히트_퍼센트 | 93.7968855088209426
-[ 기록 5 ]---------------------------------------------------------
쿼리 | 테이블 변경 pgbench_accounts 기본 키 추가(지원)
전화 | 1
총_시간 | 0.08142
행 | 0
히트_퍼센트 | 34.4947735191637631