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

F.27. 토토 꽁 머니

the토토 꽁 머니모듈 모든 SQL의 실행 통계 추적 수단을 제공합니다. 서버에서 실행 한 진술.

추가하여 모듈을로드해야합니다토토 꽁 머니toshared_preload_librariesinpostgresql.conf가 필요하기 때문입니다 추가 공유 메모리. 이것은 서버가 다시 시작되었음을 의미합니다 모듈을 추가하거나 제거해야합니다.

F.27.1. 그만큼토토 꽁 머니보기

모듈에 의해 수집 된 통계는 이라는 시스템보기토토 꽁 머니. 이보기에는 하나가 포함되어 있습니다 각 별도의 쿼리 텍스트, 데이터베이스 ID 및 사용자 ID에 대해 행 모듈이있는 최대 뚜렷한 문장 수로 추적 할 수 있습니다). 보기의 열은에 표시됩니다.테이블 F-24.

표 F-24.토토 꽁 머니

이름 type 참조 설명
userID OID pg_authid.Oid 진술을 실행 한 사용자의 OID
dbid OID pg_database.Oid 진술이있는 데이터베이스의 OID 실행
쿼리 텍스트 진술서의 텍스트 (최대track_activity_query_size바이트)
전화 bigint 실행 된 횟수
Total_Time 이중 정밀 성명서에 소비 된 총 시간, 초
bigint 총 행에 의해 검색되거나 영향을받는 총 행 수 성명

이보기 및 함수토토 꽁 머니_reset는만 사용할 수 있습니다 데이터베이스에서는 특별히 설치되었습니다 실행토토 꽁 머니.sql스크립트 설치. 그러나 통계는 모든 곳에서 추적됩니다 언제든지 서버 데이터베이스토토 꽁 머니모듈이로드됩니다 견해의 존재에 관계없이 서버.

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

진술은 그들이 가지고있는 경우 동일한 것으로 간주됩니다. 외부의 값에 관계없이 동일한 텍스트 진술에 사용 된 매개 변수. 외부 매개 변수 사용 진술을 함께 그룹화하는 데 도움이되고 통계가 더 유용합니다.

F.27.2. 기능

토토 꽁 머니_reset () 반환 void

토토 꽁 머니_reset지금까지 수집 한 모든 통계를 폐기토토 꽁 머니. 기본적으로 이것은입니다 기능은 슈퍼 유행자 만 실행할 수 있습니다.

F.27.3. 구성 매개 변수

토토 꽁 머니.max(Integer)

토토 꽁 머니.max입니다 모듈에서 추적 한 최대 명령문 수 (즉, 의 최대 행 수토토 꽁 머니보기). 더 있다면 그것보다 뚜렷한 진술이 관찰됩니다 가장 잘 수행되지 않은 진술은 폐기됩니다. 그만큼 기본값은 1000입니다.이 매개 변수는 서버 시작.

토토 꽁 머니.track(enum)

토토 꽁 머니.track모듈에 의해 계산되는 진술서 제어. 지정TOP최상위를 추적합니다 진술 (고객이 직접 발행 한 사람),all중첩 된 진술도 추적합니다 함수 내에서 호출 된 진술) 또는없음비활성화하려면. 기본값은입니다.TOP. 슈퍼 사용자 만 변경할 수 있습니다 이 설정.

토토 꽁 머니.save(부울)

토토 꽁 머니.save명세서 통계를 저장할지 여부를 지정합니다 서버 종료. 경우off그러면 통계가 종료시 저장되지 않거나 다시로드되지 않습니다. 서버 시작. 기본값은입니다.on. 이 매개 변수는에서만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄.

모듈에는 추가 공유 메모리가 필요합니다 에 대한토토 꽁 머니.max * track_activity_query_size바이트. 이 메모리는 모듈이있을 때마다 소비됩니다. 하더라도로드토토 꽁 머니.track없음.

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

# postgresql.conf
shared_preload_libraries = '토토 꽁 머니'

custom_variable_classes = '토토 꽁 머니'
토토 꽁 머니.max = 10000
토토 꽁 머니.track = all

F.27.4. 샘플 출력

$ pgbench -i 벤치

postgres =# 선택 토토 꽁 머니_reset ();

$ pgbench -c10 -t300 -m 준비된 벤치

Postgres =# \ x
Postgres =# select * from 토토 꽁 머니 wort total_time desc 리미트 3;
-[레코드 1] --------------------------------------------------------
userID | 10
dbid | 63781
쿼리 | 업데이트 브랜치는 bbalance = bbalance + $ 1을 설정합니다. 여기서 입찰 = $ 2;
전화 | 3000
Total_Time | 20.716706
줄 | 3000
-[레코드 2] -----------------------------------------------------
userID | 10
dbid | 63781
쿼리 | 업데이트 텔러는 tbalance = tbalance + $ 1인데 tid = $ 2;
전화 | 3000
Total_Time | 17.1107649999999
줄 | 3000
-[레코드 3] --------------------------------------------------------
userID | 10
dbid | 63781
쿼리 | 업데이트 계정 세트 Abalance = Abalance + $ 1 여기서 AID = $ 2;
전화 | 3000
Total_Time | 0.645601
줄 | 3000