Postgres: 데이터베이스 서버에서 실행되는 모든 SQL 문을 어떻게 볼 수 있습니까?

Postgres: 데이터베이스 서버에서 실행되는 모든 SQL 문을 어떻게 볼 수 있습니까?

성능상의 이유로 애플리케이션이 데이터베이스에 대해 작성하는 모든 SQL 문을 검토하는 중입니다. PostgreSQL 데이터베이스 서버에서 실행되는 모든 명령문을 기록하는 쉬운 방법이 있습니까? 감사해요.

답변1

찾고 있는 구성 옵션은 log_statement = "all"(문장만 원하는 경우) 또는 log_min_statement_duration = <some number>"느린" 쿼리 바로 뒤에 있는 경우("느린" 값의 경우)입니다. 보다http://www.postgresql.org/docs/current/static/runtime-config-logging.html로깅 구성에 대한 자세한 내용은

답변2

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

보다auto_explain문서에서.

답변3

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

샘플 보고서:여기그리고여기.

관련 정보