the토토 꽁 머니모듈 모든 SQL의 실행 통계 추적 수단을 제공합니다. 서버에서 실행 한 진술.
추가하여 모듈을로드해야합니다토토 꽁 머니toshared_preload_librariesinpostgresql.conf가 필요하기 때문입니다 추가 공유 메모리. 이것은 서버가 다시 시작되었음을 의미합니다 모듈을 추가하거나 제거해야합니다.
모듈에 의해 수집 된 통계는 이라는 시스템보기토토 꽁 머니. 이보기에는 하나가 포함되어 있습니다 각 별도의 쿼리 텍스트, 데이터베이스 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스크립트 설치. 그러나 통계는 모든 곳에서 추적됩니다
언제든지 서버 데이터베이스토토 꽁 머니모듈이로드됩니다
견해의 존재에 관계없이 서버.
보안상의 이유로 비 슈퍼 사용자는 볼 수 없습니다 다른 사용자가 실행 한 쿼리 텍스트. 그들은 볼 수 있습니다 그러나 뷰가 설치된 경우 통계 데이터 베이스.
진술은 그들이 가지고있는 경우 동일한 것으로 간주됩니다. 외부의 값에 관계없이 동일한 텍스트 진술에 사용 된 매개 변수. 외부 매개 변수 사용 진술을 함께 그룹화하는 데 도움이되고 통계가 더 유용합니다.
토토 꽁 머니_reset ()
반환 void
토토 꽁 머니_reset
지금까지 수집 한 모든 통계를 폐기토토 꽁 머니. 기본적으로 이것은입니다
기능은 슈퍼 유행자 만 실행할 수 있습니다.
토토 꽁 머니.max입니다 모듈에서 추적 한 최대 명령문 수 (즉, 의 최대 행 수토토 꽁 머니보기). 더 있다면 그것보다 뚜렷한 진술이 관찰됩니다 가장 잘 수행되지 않은 진술은 폐기됩니다. 그만큼 기본값은 1000입니다.이 매개 변수는 서버 시작.
토토 꽁 머니.track모듈에 의해 계산되는 진술서 제어. 지정TOP최상위를 추적합니다 진술 (고객이 직접 발행 한 사람),all중첩 된 진술도 추적합니다 함수 내에서 호출 된 진술) 또는없음비활성화하려면. 기본값은입니다.TOP. 슈퍼 사용자 만 변경할 수 있습니다 이 설정.
토토 꽁 머니.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
$ 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
Takahiro Itagaki<itagaki.takahiro@oss.ntt.co.jp