PostgreSQL 사용자들이 쿼리 성능을 심층적으로 분석하고 최적화할 수 있는 새로운 확장 기능 'pg_stat_ch'가 공개되었습니다. 이 도구는 PostgreSQL에서 실행되는 모든 쿼리의 상세 원본 데이터를 실시간으로 ClickHouse로 내보내, ClickHouse의 강력한 분석 엔진을 활용해 성능 지표를 집계하고 시각화할 수 있도록 돕습니다. 이는 기존 PostgreSQL의 내장 기능인 pg_stat_statements가 제공하는 집계된 통계 정보보다 훨씬 더 세밀한 수준의 분석을 가능하게 합니다.
pg_stat_ch는 PostgreSQL의 훅(Hook)을 통해 쿼리 실행 시작과 종료 시점에 데이터를 캡처하고, 이를 공유 메모리 큐(Shared Memory Queue)에 저장합니다. 이후 백그라운드 워커(Background Worker)가 이 데이터를 배치(Batch)로 ClickHouse에 전송하는 방식으로 작동합니다. 이 과정에서 쿼리 경로에 네트워크 I/O가 발생하지 않도록 설계되어, 쿼리 성능에 미치는 오버헤드를 최소화했습니다. 쿼리 실행 시간, 처리된 행 수, 버퍼 사용량, WAL(Write-Ahead Log) 사용량, CPU 시간 등 다양한 상세 원본 텔레메트리(telemetry) 데이터를 수집하며, DML, DDL, 유틸리티 문은 물론 오류 정보까지 캡처합니다. 특히 PostgreSQL 16, 17, 18 버전을 지원하며, JIT(Just-In-Time) 계측 및 병렬 워커 통계 등 최신 기능도 활용할 수 있습니다.
이러한 기능은 데이터베이스 관리자(DBA)와 개발자에게 PostgreSQL 성능 최적화에 있어 혁신적인 통찰력을 제공합니다. 원본 쿼리 데이터를 ClickHouse로 옮겨 분석함으로써, 특정 시간대의 성능 저하 원인을 정확히 파악하거나, 가장 많은 리소스를 소모하는 쿼리를 식별하고, 비정상적인 쿼리 패턴을 감지하는 등 기존에는 어려웠던 심층 분석이 가능해집니다. 이는 시스템의 안정성을 높이고, 사용자 경험을 개선하며, 장기적으로는 운영 비용 절감에도 기여할 수 있습니다. 특히 대규모 트랜잭션 처리와 복잡한 분석 쿼리가 많은 환경에서 그 가치가 더욱 빛을 발할 것으로 예상됩니다.