log_transaction_sample_rate
| 버전 | 기본값 | context | 타입 |
|---|---|---|---|
| 14 | 0 | superuser | string |
| 15 | 0 | superuser | string |
| 16 | 0 | superuser | string |
| 17 | 0 | superuser | string |
| 18 | 0 | superuser | string |
| 19 | 0 | superuser | string |
트랜잭션 단위로 표본을 뽑아, 선택된 트랜잭션의 모든 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 문서