Postgres : 데이터베이스 서버에서 실행중인 모든 SQL 문을 어떻게 볼 수 있습니까? 응용 프로그램이

성능상의 이유로 응용 프로그램이 데이터베이스에 대해 만드는 모든 SQL 문을 검토하는 중입니다. PostgreSQL 데이터베이스 서버에서 실행되는 모든 명령문을 쉽게 기록 할 수 있습니까? 감사.



답변

찾고자하는 설정 옵션은 log_statement = "all"(만약 당신이 문장을 원한다면), 또는 log_min_statement_duration = <some number>“느린”쿼리 바로 뒤에있는 것입니다 (일부 “느린”값). 로깅 구성에 대한 자세한 내용 은 http://www.postgresql.org/docs/current/static/runtime-config-logging.html 을 참조 하십시오 .


답변

auto_explain모듈은 매우 유용합니다. 명령문뿐만 아니라 실행 계획도 기록하고 PL / PgSQL 함수 내에서 실행되는 명령문도 기록 할 수 있습니다. 분석을 사용하지 않으면 성능 저하가 상당히 적습니다.이 경우 모든 쿼리에 대해 약간의 타이밍 오버 헤드가 발생합니다.

auto_explain설명서를 참조하십시오 .


답변

물론 가장 느린 쿼리를 직접 감지 할 수 있지만 PostgreSQL 로그 분석기 인 pgFouine 을 사용하는 것이 좋습니다 . 설치가 쉽고 정말 유용합니다.

샘플 보고서 : herehere .


답변