Postgres 데이터베이스에서 초당 몇 개의 쿼리가 실행되고 있는지 어떻게 알 수 있습니까?
Postgres 데이터베이스에서 초당 몇 개의 쿼리가 실행되고 있는지 어떻게 알 수 있습니까?
답변:
이 쿼리를 사용 하여 모든 데이터베이스에서 실행 된 총 트랜잭션 수를 읽으십시오 .
SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;
하나의 데이터베이스에 대해 동일한 카운터를 원하면 다음을 사용하십시오.
SELECT xact_commit+xact_rollback FROM pg_stat_database WHERE datname = 'mydb';
TPS (초당 트랜잭션 수)를 계산하려면 쿼리를 여러 번 실행하고 시간 간격에 따른 차이를 계산하십시오.
이를위한 준비된 도구가 있으며 그중 하나는 http://bucardo.org/wiki/Check_postgres
추가 정보 : http://www.postgresql.org/docs/9.2/static/monitoring-stats.html#PG-STAT-DATABASE-VIEW
업데이트 : Konrad는 그의 질문에 대한 나의 오해를 수정했습니다. 목표는 트랜잭션이 아니라 쿼리를 계산하는 것이 었습니다.
검색어를 계산하는 방법?
방법 1
pg_stat_statements contrib를 사용하십시오 .
방법 2
특정 기간 동안 쿼리를 전체 로깅 할 수 있습니다.
전체 로깅을 활성화하려면 PostgreSQL 9.0-9.3에서 다음 설정을 변경하십시오. postgresql.conf
logging_collector = on
log_line_prefix = '%t '
log_rotation_size = 1GB
log_statement = all
당신은 또한 쿼리 시간을보고 싶다면, 당신은 설정할 수 있습니다 log_min_duration_statement = 0 대신 의 log_statement = all. 이것은 쿼리 조정에 매우 유용합니다.
그런 다음 구성을 다시로드하고 (다시 시작 또는 HUP) 트래픽을 추정하기에 충분한 로그를 수집하십시오.
참고 : 두 방법 모두 사용자 정의 함수에 포함 된 쿼리를 포함하지 않습니다.