본문으로 건너뛰기

MYSQL SQL 통계

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

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

노트
  • 1시간 간격으로 events_statements_summary_by_digest로부터 델타값을 계산하여 수집합니다. 따라서 설정 후 1시간 뒤부터 수집을 시작합니다.

  • 1시간 간격 수집 시 sum_timer_wait 기준 최대 5,000건까지 수집합니다.

  • 이 기능은 DBX 에이전트 1.6.10 버전 이상에서 지원합니다.

  • events_statements_summary_by_digest 뷰에 대한 자세한 내용은 다음 링크를 참조하세요.

  • events_statements_summary_by_digest 뷰는 performance_schema_digests_size라는 데이터베이스 파라미터 값(row 수)에 영향을 받습니다. 해당 파라미터 값이 -1로 설정된 경우 자동 크기 조정(auto sizing)이 이루어집니다.

  • 설정된 파라미터 값에 따라 데이터를 저장하며, 설정된 용량을 초과하면 새로운 데이터는 더 이상 수집하지 않습니다.

  • 해당 뷰를 TRUNCATE 명령으로 초기화하면 기존에 수집된 데이터는 모두 삭제하고, 새로운 데이터가 기록됩니다.

사용하기 전에

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

  1. 데이터베이스 설정(my.cnf)에서 Performance Schema를 활성화하세요.

    my.cnf
    performance_schema = on
  2. 모니터링 계정에서 해당 데이터를 읽을 수 있도록 조회 권한을 설정하세요.

    grant select on performance_schema.* to whatap;
  3. DBX 에이전트에 옵션을 설정하세요.

    whatap.conf
    statements=true
노트

데이터를 수집하는 기준은 다음 DBX 에이전트 옵션을 참조하세요. performance_schema.events_statements_summary_by_digest를 조회하며 다음 합산 값이 statements_min_row 보다 큰 경우 수집합니다.

sum_rows_affected + sum_rows_sent + sum_rows_examined

whatap.conf
# default 10000 row
statements_min_row=10000

기본 화면 안내

MYSQL SQL 통계

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

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

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

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

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

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

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

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

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

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

컬럼 정보 안내

필드명설명
digest_textSQL 문
digestdigest_text의 해시값
schema_name스키마 명
count_star실행 횟수
timer_wait전체 수행시간(초)
lock_time테이블락으로 인한 대기 시간(초)
rows_affected영향받은 row 수(insert, update, replace 구문)
rows_sent리턴된 row 수
rows_examinedserver layer에서 검토된 row 수
created_tmp_disk_tables명령문을 실행하는 동안 서버가 작성한 디스크 임시 테이블 수의 합, 횟수가 높으면 sort 메모리 크기 증설을 고려하세요.
created_tmp_tables명령문을 실행하는 동안 서버가 작성한 내부 임시 테이블 수의 합
select_full_join인덱스를 사용하지 않은 table scan 수, 0이 아니라면 인덱스 확인이 필요합니다.
select_full_range_join참조 테이블에서 range 검색을 사용한 조인(join) 수
select_range첫 번째 테이블에서 range를 사용한 조인(join) 수
select_range_checkkey가 없이 조인(join)이 발생한 수, 0이 아니라면 확인이 필요합니다.
select_scanDriving 테이블을 full 스캔한 수
sort_merge_passessort merge로 sort된 수
sort_rangerange로 sort된 수
sort_rowssort 수행된 row 수
sort_scan스캔으로 sort된 수
no_index_used쿼리에서 어떤 인덱스도 사용하지 않은 횟수, 인덱스 생성에 대한 고려가 필요합니다.
no_good_index_used서버에 존재하는 기존 인덱스 중 사용할 어떤 인덱스도 찾지 못한 횟수, 횟수가 증가하면 인덱스 점검이 필요합니다.

쿼리 미리보기

쿼리문 미리보기

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

쿼리 자세히 보기

SQL 상세

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

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

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

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

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

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

    노트

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

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 목록에 순서를 변경할 항목을 드래그해서 원하는 위치로 이동할 수 있습니다.

설정 사항 초기화하기

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