콘텐츠로 이동

쿼리 분석


쿼리 분석은 데이터베이스 기능의 독립적인 분석 진입점으로, 인스턴스 간 쿼리를 집계하여 보여줍니다. 여러 데이터베이스 인스턴스를 관리할 때 각 인스턴스의 상세 페이지로 들어가지 않고도 글로벌 관점에서 시스템 수준의 느린 쿼리 병목 현상을 찾을 수 있습니다.

지원 데이터베이스 유형

쿼리 분석은 현재 MySQL, PostgreSQL, Oracle, SQL Server를 지원합니다. 데이터베이스 유형을 전환하면 목록이 해당 유형에 맞춰 인스턴스의 쿼리 데이터를 다시 로드합니다.


핵심 기능

탐색기가 단일 인스턴스 차원의 쿼리 분석을 제공하는 것과 달리, 쿼리 분석의 핵심 기능은 다음과 같습니다.

  • 인스턴스 간 집계: 동일한 비즈니스 SQL이 여러 인스턴스에서 실행될 때 자동으로 글로벌 누적 데이터로 집계되어 인스턴스별로 일일이 확인할 필요가 없습니다.
  • 동일 유형 쿼리 병합: 시스템이 자동으로 파라미터 값이 다른 동일 유형 SQL(예: WHERE id = 1WHERE id = 2)을 인식하여 하나의 쿼리 템플릿으로 병합하고 통계를 내어, 동일 문장이 파라미터 차이로 인해 분산되어 표시되는 것을 방지합니다.
  • 글로벌 성능 정렬: 총 소요 시간, 실행 횟수, 평균 소요 시간 등 여러 차원으로 정렬하여 글로벌 성능 병목을 빠르게 찾을 수 있습니다.

페이지 레이아웃

쿼리 분석 페이지는 상단 작업 표시줄, 왼쪽 빠른 필터, 쿼리 목록 및 상세 사이드 패널로 구성됩니다.

상단 작업 표시줄

요소 설명
데이터베이스 유형 선택기 드롭다운으로 MySQL / PostgreSQL / Oracle / SQL Server 전환, 전환 후 목록이 해당 유형에 맞춰 다시 로드됨
SQL 템플릿 검색 키워드로 SQL 템플릿 검색, 입력 제한 512바이트
쿼리 총 개수 현재 필터 조건의 쿼리 템플릿 개수 표시
내보내기 현재 목록 페이지를 CSV 파일, TXT로 내보내거나 대시보드로 내보내기
표시 항목 목록 열 표시/숨기기 사용자 정의 지원

왼쪽 빠른 필터

필터 차원 설명
인스턴스명 다중 선택, 해당 데이터베이스 유형의 모든 인스턴스 표시
데이터베이스 주소 다중 선택, 데이터베이스 연결 주소로 필터링
총 소요 시간 범위 구간 필터링
실행 횟수 범위 구간 필터링
시간 범위 연동

쿼리 분석의 시간 범위는 글로벌 시간 위젯과 연동됩니다. 목록 데이터와 상세 사이드 패널의 트렌드 차트는 모두 선택한 시간 창을 기준으로 실시간 집계됩니다.


쿼리 목록

목록은 현재 시간 범위와 현재 데이터베이스 유형에서 집계된 모든 쿼리 템플릿을 보여줍니다. 각 레코드는 하나의 SQL 유형(파라미터는 ?로 대체됨)을 나타내며, 해당 유형의 SQL이 선택된 모든 인스턴스에서 실행된 데이터를 요약합니다.

목록 필드

필드 설명
SQL 템플릿 파라미터가 ?로 대체된 SQL 텍스트, 목록에서 최대 2행 표시. 클릭하면 오른쪽 상세 사이드 패널 열림
실행 횟수 시간 범위 내에서 해당 유형 쿼리가 모든 인스턴스에서 누적 실행된 횟수
평균 소요 시간 해당 유형 쿼리의 평균 단일 실행 시간
총 소요 시간 시간 범위 내에서 해당 유형 쿼리가 모든 인스턴스에서 누적 실행된 시간
성능 오버헤드 비율 해당 유형 쿼리의 누적 총 소요 시간이 전체 쿼리 누적 총 소요 시간에서 차지하는 비율(백분율), 진행률 표시줄로 시각화. 비율이 높을수록 해당 유형 쿼리가 시스템 전체 성능에 미치는 영향이 큼
평균 스캔 행 수 해당 유형 쿼리가 모든 인스턴스에서 평균적으로 스캔/반환한 행 수, 쿼리의 데이터 스캔 범위 평가에 사용
트렌드 현재 시간 범위 내 실행 횟수의 미니 꺾은선 차트(Sparkline), 목록 페이지 시간 범위와 연동
SQL 템플릿과 원본 SQL

목록에 표시되는 SQL 템플릿은 구체적인 파라미터 값을 ?로 대체하여 문장 구조 자체에 집중할 수 있도록 합니다. 상세 사이드 패널에서는 해당 템플릿에서 최근에 나타난 원본 SQL 샘플 하나를 확인할 수 있으며, 전체 텍스트를 한 번에 복사할 수 있습니다.


쿼리 상세 사이드 패널

목록의 아무 행이나 클릭하면 오른쪽에서 쿼리 상세 사이드 패널이 슬라이드되어 열리며, 해당 유형 쿼리의 글로벌 성능 데이터를 보여줍니다. 사이드 패널에는 다음 탭이 포함됩니다.

전체 SQL

사이드 패널 상단에 고정되어 해당 유형 쿼리의 전체 SQL 템플릿(파라미터는 ?로 대체됨)을 표시하며, 한 번에 복사할 수 있습니다.

성능 트렌드

목록 페이지 시간 범위와 연동되어 시계열 차트로 해당 유형 쿼리의 세 가지 핵심 지표를 보여줍니다.

차트 설명
실행 횟수 회/분, 해당 유형 쿼리의 동시 요청 압력 트렌드를 반영
평균 소요 시간 밀리초(ms), 해당 유형 쿼리의 단일 실행 효율성 트렌드를 반영
총 소요 시간 밀리초(ms), 해당 유형 쿼리가 전체 시스템에서 차지하는 시간 소모 트렌드를 반영

각 지표는 독립적인 시계열 차트로 표시되며, 시간 간격 필터링 또는 차트 내보내기를 지원합니다.

인스턴스

해당 유형 쿼리의 각 인스턴스별 실행 분포를 보여주어 병목이 어떤 인스턴스에 집중되어 있는지 판단하는 데 도움을 줍니다.

필드 설명
데이터베이스 주소 인스턴스의 연결 주소
인스턴스명 데이터베이스 인스턴스 식별자
실행 횟수 해당 인스턴스에서 해당 유형 쿼리의 실행 횟수, 진행률 표시줄로 시각화
평균 소요 시간 해당 인스턴스에서 해당 유형 쿼리의 평균 실행 시간
총 소요 시간 해당 인스턴스에서 해당 유형 쿼리의 누적 실행 시간, 진행률 표시줄로 시각화
평균 전송 행 수 해당 인스턴스에서 해당 유형 쿼리가 평균적으로 반환한 행 수
오류 횟수 해당 인스턴스에서 해당 유형 쿼리 실행 실패 횟수
  • 인스턴스명을 클릭하면 새 페이지에서 해당 인스턴스의 단일 인스턴스 쿼리 상세 페이지가 열립니다(기존 탐색기 상세 페이지 재사용).
  • 검색창에서 인스턴스명 또는 데이터베이스 주소로 필터링할 수 있습니다.

사용자

해당 유형 쿼리의 각 데이터베이스 계정별 실행 분포를 보여줍니다.

필드 설명
사용자 데이터베이스 계정 이름
샘플 수 해당 사용자가 이 유형 쿼리를 실행한 횟수
평균 소요 시간 해당 사용자가 이 유형 쿼리를 실행한 평균 시간
  • 검색창에서 사용자 이름으로 필터링할 수 있습니다.

쿼리 샘플

해당 유형 쿼리의 실제 샘플링 레코드를 보여줍니다. 필드는 데이터베이스 유형에 따라 다릅니다.

MySQL 예시 필드:

필드 설명
시간 샘플이 발생한 타임스탬프
데이터베이스 대상 데이터베이스(Schema)
실행 시간 해당 샘플의 실제 실행 소요 시간
사용자 해당 샘플을 실행한 데이터베이스 계정
대기 그룹 해당 샘플의 대기 이벤트 그룹
데이터베이스별 샘플 필드 차이

쿼리 샘플의 표시 필드는 데이터베이스 유형과 관련이 있습니다. 예를 들어 SQL Server는 "세션 ID, 대기 유형, CPU 시간" 등의 필드를 표시하고, Oracle과 PostgreSQL도 각각의 네이티브 성능 필드를 표시합니다. 구체적인 필드는 페이지에 실제로 표시되는 내용을 기준으로 합니다.


지표 계산 설명

쿼리 분석의 집계 지표는 다음 로직으로 계산됩니다.

지표 계산 설명
실행 횟수 모든 인스턴스에서 해당 유형 쿼리의 실행 횟수 합계
평균 소요 시간 모든 인스턴스의 누적 총 소요 시간 ÷ 모든 인스턴스의 누적 실행 횟수
총 소요 시간 모든 인스턴스에서 해당 유형 쿼리의 소요 시간 합계
성능 오버헤드 비율 해당 유형 쿼리 누적 총 소요 시간 ÷ 전체 쿼리 누적 총 소요 시간 × 100%
평균 스캔 행 수 모든 인스턴스에서 해당 유형 쿼리의 평균 스캔 행 수의 평균값
데이터 신선도 설명

쿼리 분석의 데이터는 사용자가 선택한 시간 범위를 기준으로 실시간 집계됩니다. 선택한 시간 범위 내에서 데이터를 보고하지 않은 인스턴스는 집계 결과에 표시되지 않습니다.


문서 평가

이 페이지가 도움이 되었나요?