SQL 튜닝의 실행 계획 분석 - 프로파일링

Minjae An·2024년 2월 20일
post-thumbnail

프로파일링은 마치 범죄수사에서 실마리를 찾으려 분석하는 수단처럼 SQL 문에서도 문제가 되는 병목 지점을 찾고자 사용하는 수단, 툴을 가리킨다.

SQL 프로파일링 실행하기

show variables like 'profiling%';

위 커맨드를 통해 프로파일링의 설정값을 확인할 수 있다. MySQL은 기본 비활성화 설정으로 되어있으므로 활성화 작업을 해주어야 한다.

set profiling='ON';

프로파일링을 수행할 SQL문을 실행하고 쿼리 목록을 확인한다.

show profiles;

특정 쿼리 ID에 대해서만 프로파일링된 상세 내용을 확인하고자 한다면, 쿼리 ID를 입력하여 결과를 확인할 수 있다.

show profile for query {id};


실제 특정 status에 해당하는 duration 값이 높게 나타난다면 문제 소지 구간으로 볼 수 있다.

프로파일링 결과 해석

show profile all for query 1;

위 쿼리는 제공할 수 있는 프로파일링 정보를 모두 출력한다.

show profile cpu for query 1;

SQL 수행 단계별로 점유한 CPU 양을 출력한다. 사용자 기준 CPU, 시스템 기준 CPU를 구분해서 상세 정보를 제공한다.

show profile block io for query 1;

데이터 접근 단위인 블록 수준의 입출력 정보를 추가로 출력한다.

참고

profile
도전을 성과로

0개의 댓글