performance_schema, information_schema 를 좀 더 쉽게, 유저 친화적으로 집계해주는 뷰와 간단한 함수, 프로시져의 모음
현재 MySQL Workbench 에서 설치가능한 Helper 는 sys schema 1.4 버전으로 MySQL 5.7.9 부터는 sys schema 1.5 가 탑재됨, 5.6은 github 에서 받아서 설치
현 버전 1.5.1
1.테이블
sys_config 주로 SYS 루틴에 대한 옵션 설정2.뷰
version SYS 버전
ps_check_lost_instrumentation P_S 집계 빠지는lost instrument 와 개수
metrics 서버 수치, P_S 의 global_status, I_S 의 INNODB_METRICS, P_S memory instrumentation 에 기반한 현재, 총 메모리 할당, 스냅샷 시간 합침–세션/쓰레드
processlist 백그라운드 쓰레드 포함 넌블락킹 프로세스리스트
session 유저 넌블락킹 프로세스리스트
session_ssl_status 커넥션 ssl 정보 (n/a)
schema_table_lock_waits 메타데이터락을 위해 대기하는 세션 (n/a)
innodb_lock_waits InnoDB 락 스냅샷 정보
io_by_thread_by_latency 쓰레드별 I/O 소비
latest_file_io 파일,쓰레드별 가장 최근의 I/O (NULL)
–스키마
schema_auto_increment_column 전체 AI 정보 조회 (00s+)
schema_index_statistics 전체 인덱스 정보 조회 (5s+)
schema_unused_indexes 집계이후 사용되지 않는 인덱스
schema_redundant_indexes 도미넌트 인덱스와 중복되는 인덱스 (3s+)
schema_object_overview 데이터베이스별 오브젝트 숫자
schema_table_statistics 테이블 스키마 통계
schema_table_statistics_with_buffer 버퍼풀 포함한 테이블 스키마 통계 (3m+)
schema_tables_with_full_table_scans 테이블별 풀스캔 레코드, 지연
–호스트
host_summary 호스트별 구문 액티비티, 파일 I/O, 커넥션 집계 (5.7이면 메모리사용)
host_summary_by_stages 호스트별 구문 스테이지 (NULL)
host_summary_by_file_io_type 호스트,이벤트별 파일 I/O
host_summary_by_statement_latency 호스트별 구문 통계
host_summary_by_statement_type 호스트,구문별 수행 통계
waits_by_host_by_latency 호스트별 지연
–구문
statement_analysis 구문 집계 통계, P_S의 events_statements_summary_by_digest
statements_with_errors_or_warnings 에러와 경고를 발생시킨 구문
statements_with_full_table_scans 풀스캔이 된 구문
statements_with_runtimes_in_95th_percentile 높은 평균 수행시간을 가지는 구문
statements_with_sorting 정렬이 진행된 구문
statements_with_temp_tables 임시테이블 사용한 구문
–파일
io_global_by_file_by_bytes 파일,바이트별 글로벌 I/O 소비 (5s+)
io_global_by_file_by_latency 파일,지연별 글로벌 I/O 소비 (5s+)
io_global_by_wait_by_bytes 바이트별 글로벌 I/O 소비
io_global_by_wait_by_latency 지연별 글로벌 I/O 소비
–유저/이벤트
user_summary 유저 구문, 커넥션 활동
user_summary_by_file_io 유저별 파일 I/O
user_summary_by_file_io_type 유저별,이벤트별 파일 I/O
user_summary_by_stages 유저별 스테이지 이벤트 (NULL)
user_summary_by_statement_latency 유저별 구문 통계
user_summary_by_statement_type 유저별,구문별 수행된 구문
waits_by_user_by_latency 유저별,이벤트별 지연
wait_classes_global_by_avg_latency 이벤트별 평균 지연
waits_global_by_latency 이벤트별 지연
–메모리
innodb_buffer_stats_by_schema 스키마별 버퍼 정보 (00s+)
innodb_buffer_stats_by_table 스키마,테이블별 버퍼 정보 (00s+)
memory_by_host_by_current_bytes 호스트별 메모리사용 (5.7)
memory_by_thread_by_current_bytes 쓰레드별 메모리사용 (5.7)
memory_by_user_by_current_bytes 유저별 메모리사용 (5.7)
memory_global_by_current_bytes 할당 타입별 메모리사용 (5.7)
memory_global_total 총 메모리사용 (5.7)
3. 프로시져
create_synonym_db() 지정한 데이터베이스의 synonym 스키마 생성 내부에 테이블들을 view 로 가지고 있음
diagnostics() 진단 목적으로 현재의 서버 현황 리포트를 생성
execute_prepared_stmt() prepared statement 로 쿼리를 수행
ps_setup_disable_background_threads() P_S의 모든 백그라운드 쓰레드를 비활성화
ps_setup_disable_consumer() 주어진 이름을 가진 P_S의 consumer를 비활성화
ps_setup_disable_instrument() 주어진 이름을 가진 P_S의 instrument를 비활성화
ps_setup_disable_thread() 주어진 커넥션ID에 대한 P_S instrument를 비활성화
ps_setup_enable_background_threads() P_S의 모든 백그라운드 쓰레드를 활성화
ps_setup_enable_consumer() 주어진 이름을 가진 P_S consumer를 활성화
ps_setup_enable_instrument() 주어진 이름을 가진 P_S instrument를 활성화
ps_setup_enable_thread() 주어진 커넥션ID에 대한 P_S instrument를 활성화
ps_setup_reload_saved() 같은 세션내 ps_setup_save()로 저장한 P_S설정을 복구
ps_setup_reset_to_default() P_S 설정을 디폴트세팅으로 리셋
ps_setup_save() 디버깅이나 다른 목적으로 설정을 ALTER 전, 현재상태의 P_S 설정을 저장
ps_setup_show_disabled() 현재 비활성화된 모든 P_S 설정을 보여줌
ps_setup_show_disabled_consumers() 현재 비활성화된 모든 consumer를 보여줌
ps_setup_show_disabled_instruments() 현재 비활성화된 모든 instrument를 보여줌, 결과가 길 수 있음
ps_setup_show_enabled() 현재 활성화된 P_S 설정을 보여줌 configuration.
ps_setup_show_enabled_consumers() 현재 활성화된 모든 consumer를 보여줌
ps_setup_show_enabled_instruments() 현재 활성화된 모든 instrument를 보여줌, 결과가 길 수 있음
ps_statement_avg_latency_histogram() P_S events_statements_summary_by_digest의 노말라이즈쿼리 평균지연시간을 보여주는 히스토그래프
ps_trace_statement_digest() 주어진 statement digest(MD5값)에 대해 모든 P_S instrumentation을 트레이싱
ps_trace_thread() P_S 데이터를 .dot 포맷의 그래프파일로 덤프
ps_truncate_all_tables() P_S 써머리 테이블을 truncate, 모든 집계된 instrumentation 을 리셋
statement_performance_analyzer() 서버에서 수행되고있는 구문들의 리포트를 생성
table_exists() 주어진 이름의 일반테이블/임시테이블/뷰가 존재하는지 확인
4. 뷰
extract_schema_from_file_name() 파일 경로에서 데이터베이스 명을 추출
extract_table_from_file_name() 파일 경로에서 테이블 명을 추출
format_bytes() byte 값을 가독성이 높은 units 단위 값(KiB, MiB, GiB, TiB ..)으로 변환
format_path() 파일 경로를 @@datadir, @@tmpdir 등 내부적으로 알려진 경로명으로 대체하여 줄임
format_statement() 긴 구문을 statement_truncate_len 에 설정된 고정된 길이로 truncate, 길면 생략문자(…)가 들어감
format_time() P_S 지연에 대한 picoseconds 값을 가독성이 높은 units 단위 값(ns, us, ms, s, m, h, d, w)으로 변환
list_add() 리스트에 아이템을 추가
list_drop() 리스트에서 아이템을 제거
ps_is_account_enabled() 인자로 주어진 account 를 위한 instrumentation 이 활성화되어있는지 여부 리턴
ps_is_consumer_enabled() 인자로 주어진 P_S consumer 가 활성화인지 여부 리턴
ps_is_instrument_default_enabled() 인자로 주어진 P_S instrument 가 기본적으로 활성화인지
ps_is_instrument_default_timed() 인자로 주어진 P_S instrument 가 기본적으로 timed 인지 여부
ps_is_thread_instrumented() 인자로 주어진 커넥션ID에 대해 P_S instrumentation이 켜져있는지 여부
ps_thread_account() 인자로 주어진 쓰레드ID에 대해 쓰레드와 연관된 user_name@host_name을 리턴
ps_thread_id() 커넥션ID에 대한 내부 쓰레드ID를 리턴
ps_thread_stack() 주어진 쓰레드ID에 대해 모든 구문, 스테이지, 이벤트의 스택정보를 JSON 포맷으로 리턴
ps_thread_trx_info() 주어진 쓰레드ID에 대한 정보를 JSON 포맷으로 리턴, P_S events_transactions_current, events_statements_history
quote_identifier() 인자로 주어진 스트링을 `식별자`로 리턴
sys_get_config() 설정 옵션 파일명을 인자로 받아 sys_config 테이블에서 옵션 값 리턴
version_major() MySQL 서버 메이저 버전 넘버 리턴
version_minor() MySQL 서버 마이너 버전 넘버 리턴
version_patch() MySQL 서버 패치 릴리즈 버전 넘버 리턴