Debugging slow PostgreSQL queries

Ellie Huxtable

느린 PostgreSQL 쿼리 디버깅하기

오늘 가끔 발생하는 지연 시간 스파이크의 원인을 파악하려고 했습니다. 최적화가 필요한 느린 쿼리가 있는 것 같았는데, 확인하려면 슬로우 쿼리 로깅을 활성화해야 했습니다.

Postgres에서 실행에 100ms보다 오래 걸리는 모든 구문을 로그로 남기려면 설정 파일에 다음을 추가하세요.

log_min_duration_statement = 100

그런 다음 다음 명령으로 Postgres 설정을 다시 불러오세요.

select pg_reload_conf();

서버를 재시작할 필요는 없습니다!

그 밖에 다음과 같은 옵션이 도움이 될 수 있습니다.

# Log all statements, not just the slow ones
# This may be very chatty, so make sure your log partition doesn't fill up
log_statement = all/ddl/none
# Log durations alongside statements
log_duration = on

이전 직장에서는 Postgres 성능 분석에 pganalyze가 정말 훌륭하다는 것을 알게 되었습니다. 몇 가지 추가 설정이 필요하고 유료이긴 하지만, Postgres를 많이 사용한다면 정말 추천합니다!

그 외에 제가 가장 즐겨 찾는 Postgres 설정 옵션 자료는 postgresqlco.nf입니다. 사용 가능한 옵션을 둘러보기에 좋고, 어떤 옵션이 재시작을 필요로 하는지 바로 알 수 있어 편리합니다.

원문은 Ellie Huxtable님이 에 게재했습니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.