본문으로 건너뛰기
log_transaction_sample_rate

log_transaction_sample_rate

버전기본값context타입
140superuserstring
150superuserstring
160superuserstring
170superuserstring
180superuserstring
190superuserstring

트랜잭션 단위로 표본을 뽑아, 선택된 트랜잭션의 모든 statement를 log에 남길 비율을 정한다.

다른 이유로 기록되는 statement에 더해, 표본으로 뽑힌 트랜잭션은 안에 있는 statement가 duration과 무관하게 전부 기록된다. sampling은 새 트랜잭션마다 확률적으로 적용되어, 예를 들어 0.1이면 트랜잭션 하나하나가 통계적으로 10분의 1 확률로 선택된다. 기본값은 0으로 추가 기록을 하지 않으며, 1로 설정하면 모든 트랜잭션의 모든 statement를 기록한다.

statement 단위로 표본을 뽑는 log_statement_sample_rate와 달리 트랜잭션 전체가 통째로 남기 때문에, 애플리케이션이 한 트랜잭션 안에서 어떤 순서로 쿼리를 실행하는지 문맥을 보존한 표본을 얻을 수 있다.

운영 노트: 모든 statement-logging 옵션이 그렇듯 오버헤드가 상당할 수 있다. 트랜잭션 패턴 분석이 필요할 때 0.001~0.01처럼 낮은 값으로 시작해 log 볼륨을 확인하면서 조정하는 것이 안전하다.

출처: PostgreSQL 18 문서