본문으로 건너뛰기

PG SQL 통계

홈 화면 > 프로젝트 선택 > 통계/보고서 > PG SQL 통계

PostgreSQL에서 제공하는 SQL 통계(수행 횟수, 실행 시간, Row 수 등) 데이터로 pg_state_statements 뷰를 통해 수집합니다.

노트
  • 1시간 간격으로 pg_stat_statements로부터 델타값을 계산해 수집하기 때문에, 설정 후 1시간 뒤부터 수집을 시작합니다.

  • pg_stat_statements 모듈에 대한 자세한 내용은 다음 링크를 참조하세요.

사용하기 전에

PG SQL 통계 메뉴를 사용하기 위해서는 모니터링 대상 DB에서 다음과 같은 설정이 필요합니다.

  1. PostgreSQL 확장팩을 설치하세요.

    yum install postgresql-contrib
  2. postgresql.conf 파일에 파라미터 설정 후 DB를 재기동하세요.

    postgresql.conf
    shared_preload_libraries = 'pg_stat_statements'
  3. 사용하려는 DB에 접속해 확장 모듈을 설치하세요.

    create extension pg_stat_statements;
  4. 데이터를 조회하는지 확인하세요.

    select * from public.pg_stat_statements

기본 화면 안내

PG SQL 통계

  1. 시간에서 데이터를 조회할 시간과 날짜를 선택하세요. 녹색 버튼을 선택해 조회 시간을 선택할 수도 있습니다.

  2. 인스턴스에서 데이터를 조회할 대상을 선택하세요.

  3. 검색 아이콘 버튼을 선택하세요.

상위 50건의 내용을 테이블에 표시합니다.

노트
  • 임의의 날짜와 시간을 조회하려면 시계 표시 부분을 선택하세요. 날짜와 시간 텍스트 영역을 클릭하면 날짜와 시간을 선택할 수 있는 옵션이 나타납니다.

  • 테이블 헤더의 각 컬럼을 클릭하면 선택한 컬럼을 기준으로 목록을 정렬할 수 있습니다.

  • 정렬 순서에서 선택한 항목 따라 조회 결과를 정렬할 수 있습니다. 원하는 항목을 선택한 다음 버튼을 선택하세요.

  • 조회 건수에서 테이블에 표시할 건 수를 설정할 수 있습니다. 설정을 완료한 다음 버튼을 선택하세요.

  • 조회한 내용을 CSV 형식의 파일로 다운받으려면 Download icon 버튼을 선택하세요.

  • 조회된 결과 목록에서 query 항목을 선택하면 SQL 상세 창이 나타납니다. 자세한 내용은 다음 문서를 참조하세요.

컬럼 정보 안내

항목설명
query쿼리 문자열
queryid쿼리 해시코드
user사용자 oid
db데이터베이스 이름
rows검색되거나 영향을 받는 총 ROW 수
total_exec_time쿼리 실행에 소요 된 총 시간(밀리 초)
calls실행 횟수
shared_blks_hit총 공유 블록 캐시 적중 수
shared_blks_read디스크에서 읽은 총 공유 블록 수
blk_read_time블록을 읽는데 걸린 총시간(밀리 초), track_io_timing이 활성화 된 경우, 그렇지 않으면 0
blk_write_time블록을 쓰는데 걸린 총시간, track_io_timing이 활성화 된 경우, 그렇지 않으면 0
local_blks_dirtied변경된 로컬 블록 수
local_blks_hit로컬 블록 캐시 히트 수
local_blks_written디스크에 기록된 총 로컬 블록 수
local_blks_read디스크에서 읽은 총 로컬 블록 수
shared_blks_written디스크에 기록된 총 공유 블록 수
shared_blks_dirtied변경된 총 공유 블록 수
temp_blks_read디스크에서 읽은 총 임시 블록 수
temp_blks_written디스크에 기록된 총 임시 블록 수

쿼리 미리보기

쿼리문 미리보기

조회된 결과 목록에서 마우스 포인터를 query 컬럼 항목으로 가져가면 쿼리문을 미리볼 수 있습니다.

쿼리 자세히 보기

SQL 상세

  • SQL 통계 보기: 해당 SQL 쿼리문과 관련한 통계 정보를 확인할 수 있는 SQL 통계 메뉴로 이동할 수 있습니다.
  • Default Bind: 쿼리 문장에서 변수로 설정된 부분을 기본값으로 바인딩할 수 있습니다.

  • Reset Bind: 바인딩된 기본값을 해제하고 변수를 확인할 수 있습니다.

  • Formatting: SQL 쿼리문에 들여쓰기 및 포맷팅을 적용해 가독성을 높일 수 있습니다.

  • Plan: Plan 정보를 확인하려면 DB Name, User Name, Password를 입력한 다음 검색 아이콘 버튼을 선택하세요.

    • Text: 텍스트 형식으로 플랜 정보를 확인할 수 있습니다.

    • JSON: Json 형식으로 플랜 정보를 조회하면 병목이 발생하는 지점을 빠르게 확인할 수 있습니다.

    노트

    JSON 형식으로 플랜 정보를 조회하는 기능은 DBX 에이전트 1.6.12 버전 이상에서만 지원합니다.

JSON 형식으로 플랜 정보를 조회한 상태에서 table 또는 index 항목을 선택하면 테이블의 column, index 구성을 확인할 수 있는 Object detail 창이 나타납니다.

Object detail

이 기능은 DBX 에이전트 1.6.15 버전 이상에서 지원합니다. 데이터베이스 권한과 관련한 설정은 다음 문서를 참조하세요.

조회 결과 필터링하기

필터 조건 추가하기

조회된 결과에서 SQL 텍스트 값 또는 에이전트 이름, DB 유저 이름 등을 기준으로 필터링해 원하는 결과를 조회할 수 있습니다.

조건 추가하기

  1. 필터 옵션에서 버튼을 선택하세요.

  2. 필터 키 항목에서 원하는 필터링 기준을 선택하세요.

    • 선택한 항목의 값이 문자에 해당한다면 포함(파란색), 미포함(빨간색) 조건을 선택할 수 있습니다.

      조건 색상

    • 선택한 항목의 값이 숫자에 해당한다면 ==(같음), >=(보다 크거나 같음), <=(보다 작거나 같음) 조건을 선택할 수 있습니다.

  3. 조건 항목에서 조건을 선택하세요.

  4. 조건과 일치시킬 문자열 또는 숫자를 입력하세요.

  5. 적용 버튼을 선택하세요.

노트
  • 필터링 조건을 추가하려면 추가 버튼을 선택한 다음 1 ~ 5의 과정을 반복하세요. 추가한 조건은 AND(&&) 조건으로 적용됩니다.

  • 조건 추가 중 일부 항목을 삭제하려면 필터 조건 오른쪽에 삭제 아이콘 버튼을 선택하세요. 전체 조건을 삭제하려면 삭제 아이콘 전체 삭제 버튼 선택하세요.

  • 필터 옵션에 적용된 조건을 빠르게 삭제하려면 버튼을 선택하세요.

  • sqlText에 'WhaTap'이 포함된 경우 제외하도록 기본 설정되어 있습니다.

    WhaTap

필터 조건 수정하기

필터 수정하기

필터 옵션에 적용된 항목을 클릭하세요. 필터 수정하기 창이 나타나면 원하는 항목을 수정하고 적용 버튼을 선택하세요.

테이블 컬럼 설정하기

테이블 헤더 컬럼을 감추거나 원하는 항목을 추가할 수 있습니다. 컬럼 순서를 변경할 수도 있습니다. 컬럼 아이콘 버튼을 선택하세요.

컬럼 설정

노트
  • 설정을 완료한 다음에는 확인 버튼을 선택해야 설정 사항이 테이블에 반영됩니다.

  • 숫자 3 검색란에 텍스트를 입력해 원하는 컬럼 항목을 검색할 수 있습니다. 입력한 텍스트와 매칭되는 컬럼 항목만 표시됩니다.

  • 이미지는 상품 또는 프로젝트, 메뉴에 따라 다를 수 있습니다.

컬럼 추가하기

숫자 1 목록에서 테이블 헤더 컬럼으로 추가할 항목을 선택하세요. 모든 항목을 추가하려면 전체 선택을 선택하세요.

컬럼 삭제하기

숫자 1 목록에서 삭제할 컬럼 항목의 체크 박스를 선택 해제하세요. 또는 숫자 2 목록에서 삭제할 항목의 오른쪽에 삭제 아이콘 버튼을 선택하세요.

컬럼 순서 변경하기

숫자 2 목록에 순서를 변경할 항목을 드래그해서 원하는 위치로 이동할 수 있습니다.

설정 사항 초기화하기

변경 사항은 모두 취소하고 초기화하려면 초기화 아이콘 초기화 버튼을 선택하세요.