본문으로 건너뛰기

슬로우 쿼리

슬로우 쿼리 화면에서 DB 파라미터에 설정된 기준 시간을 초과한 느린 SQL을 모니터링하고 확인할 수 있습니다. PostgreSQL은 슬로우 쿼리를 로그 파일로 기록하지만, 이를 확인하려면 DB 서버에 터미널로 접속하여 텍스트 로그를 직접 읽어야 합니다. 슬로우 쿼리 로그를 실시간으로 수집하여 시각적인 차트와 목록으로 제공합니다.

  • Slow Query 차트에서 느린 쿼리의 발생 시점과 수행 시간을 시각적으로 파악할 수 있습니다.

  • Slow Query List에서 개별 쿼리의 상세 정보를 확인하고, 실행 계획(Plan)을 조회할 수 있습니다.

  • 실시간(Live) 모드와 과거 시간 조회를 모두 지원합니다.

노트

슬로우 쿼리 수집을 위해 추가 에이전트가 필요합니다. 온프레미스 환경은 XOS 에이전트, 클라우드(AWS RDS 등) 환경은 DBXC 에이전트를 설치해야 합니다.

슬로우 쿼리 차트는 대시보드의 SQL Elapse Map 차트와 유사하지만, 다음과 같은 차이가 있습니다.

표 | 슬로우 쿼리 차트와 SQL Elapse Map 차트의 차이점
구분슬로우 쿼리SQL Elapse Map
데이터 소스DB가 남기는 슬로우 쿼리 로그에이전트가 5초 간격으로 수집하는 액티브 세션
수행 시간 정확도DB가 기록한 실제 수행 시간으로 정확함5초 간격 수집으로 최대 5초의 오차 발생 가능
수집 대상설정 기준 시간(log_min_duration_statement)을 초과한 쿼리만수집 시점에 실행 중인 모든 액티브 세션

사전 설정

이 화면에 데이터를 표시하려면 DB 설정, DBX Agent 설정, 환경에 따라 XOS Agent 또는 DBXC Agent 설정이 필요합니다.

DB 설정

postgresql.conf에서 슬로우 쿼리 기준 시간을 설정합니다. 변경 후 PostgreSQL 재시작 또는 pg_reload_conf() 실행이 필요합니다.

postgresql.conf
log_min_duration_statement = 500
파라미터설명
log_min_duration_statement설정값(밀리초)을 초과하는 SQL을 로그에 기록합니다. 예: 500이면 500ms 이상 소요되는 SQL이 기록됩니다.

DBX Agent 설정

whatap.conf에 다음 설정을 추가합니다.

whatap.conf
slow_query_log=ON
설정 항목타입기본값설명
slow_query_logStringOFF슬로우 쿼리 로그 수집 활성화

OS 에이전트 설정

슬로우 쿼리 로그를 수집하려면 DB 운영 환경에 맞는 에이전트가 필요합니다.

환경필요 에이전트주요 설정참고. 설정 안내
온프레미스(Linux, Windows)XOS 에이전트없음 (자동 인식 실패 시 slow_query=에 로그 파일 경로 직접 지정)XOS 에이전트 설정
클라우드(AWS RDS, NCP 등)DBXC 에이전트slow_query: true (config.yaml 인스턴스별 설정)DBXC 에이전트 설정

슬로우 쿼리

기본 옵션

슬로우 쿼리 화면의 상단 필터 영역에서 조회할 기간과 대상 DB 인스턴스를 선택할 수 있습니다.

  • 시간: 실시간(Live) 모드 또는 과거 시간을 선택합니다. Live 모드는 10초 간격으로 자동 갱신됩니다.

  • 인스턴스: 조회 대상 DB 인스턴스를 선택합니다. 전체 또는 개별 인스턴스를 선택할 수 있습니다.

Slow Query 차트

슬로우 쿼리가 발생한 시점을 scatter 차트로 표시합니다. Y축은 수행 시간(단위: 초), X축은 시간입니다.

  • 각 점은 하나의 슬로우 쿼리를 나타내며, 위에 위치할수록 오래 걸린 쿼리입니다.
  • 차트 영역을 마우스 드래그하면 해당 구간의 쿼리만 하단 목록에 표시됩니다.
  • 우측 상단의 ∧ / ∨ 버튼으로 Y축 범위를 조정할 수 있습니다.

Slow Query List

차트에서 선택한 구간에 해당하는 슬로우 쿼리 목록을 표시합니다.

컬럼설명
Instance쿼리가 실행된 인스턴스 명
DB데이터베이스 명
User실행 사용자 명
Log Time슬로우 쿼리 로그 기록 시각
Type로그 유형(예: statement)
Coltype컬렉션 유형
Duration (s)쿼리 수행 시간(초)
SQL실행된 SQL 문

SQL 상세 보기

SQL 컬럼의 쿼리를 클릭하면 상세 정보 창이 열립니다.

데이터 해석 가이드

주요 확인 포인트

  • Duration이 긴 쿼리: 개별 실행 시간이 긴 쿼리 → SQL 튜닝, 인덱스 점검

  • 동일한 SQL이 반복적으로 나타나는 경우: 특정 쿼리가 지속적으로 느림 → 근본적인 튜닝 필요

  • 특정 시간대에 집중된 경우: 해당 시간의 DB 부하, 락 경합, 배치 작업 등 외부 요인 확인

실전 활용 시나리오

시나리오 1. 느린 쿼리 실시간 모니터링

  1. Live 모드에서 Slow Query 차트 관찰

  2. 새로운 점이 나타나면 해당 영역을 드래그하여 선택

  3. Slow Query List에서 쿼리 확인 → SQL 클릭하여 상세 정보 및 실행 계획 조회

시나리오 2. 특정 시간대 슬로우 쿼리 분석

  1. 시간 필터에서 문제가 발생한 시간대 선택

  2. 차트에서 쿼리가 집중된 구간을 드래그

  3. Duration이 긴 쿼리부터 확인하여 원인 분석

시나리오 3. 슬로우 쿼리 기준 조정

  1. 슬로우 쿼리가 너무 많이 수집되면 log_min_duration_statement 값을 높여 기준 완화

  2. 슬로우 쿼리가 수집되지 않으면 log_min_duration_statement 값을 낮추거나, slow_query_log=ON 설정 확인