• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    1. 계정 관리 문
    2. 테이블 유지 보수 문
    3. 플러그인 및 사용자 정의 함수 문
    4. SET 구문
    5. SHOW 구문
    1. SHOW AUTHORS 구문
    2. SHOW BINARY LOGS 구문
    3. SHOW BINLOG EVENTS 구문
    4. SHOW CHARACTER SET 구문
    5. SHOW COLLATION 구문
    6. SHOW COLUMNS 구문
    7. SHOW CONTRIBUTORS 구문
    8. SHOW CREATE DATABASE 구문
    9. SHOW CREATE EVENT 구문
    10. SHOW CREATE FUNCTION 구문
    11. SHOW CREATE PROCEDURE 구문
    12. SHOW CREATE TABLE 구문
    13. SHOW CREATE TRIGGER 구문
    14. SHOW CREATE VIEW 구문
    15. SHOW DATABASES 구문
    16. SHOW ENGINE 구문
    17. SHOW ENGINES 구문
    18. SHOW ERRORS 구문
    19. SHOW EVENTS 구문
    20. SHOW FUNCTION CODE 구문
    21. SHOW FUNCTION STATUS 구문
    22. SHOW GRANTS 구문
    23. SHOW INDEX 구문
    24. SHOW MASTER STATUS 구문
    25. SHOW OPEN TABLES 구문
    26. SHOW PLUGINS 구문
    27. SHOW PRIVILEGES 구문
    28. SHOW PROCEDURE CODE 구문
    29. SHOW PROCEDURE STATUS 구문
    30. SHOW PROCESSLIST 구문
    31. SHOW PROFILE 구문
    32. SHOW PROFILES 구문
    33. SHOW RELAYLOG EVENTS 구문
    34. SHOW SLAVE HOSTS 구문
    35. SHOW SLAVE STATUS 구문
    36. SHOW STATUS 구문
    37. SHOW TABLE STATUS 구문
    38. SHOW TABLES 구문
    39. SHOW TRIGGERS 구문
    40. SHOW VARIABLES 구문
    41. SHOW WARNINGS 구문
    6. 기타 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.7.5.31 SHOW PROFILE 구문

SHOW PROFILE [type [, type] ... ]
    [FOR QUERY n]
    [LIMIT row_count [OFFSET offset]]

type:
    ALL
  | BLOCK IO
  | CONTEXT SWITCHES
  | CPU
  | IPC
  | MEMORY
  | PAGE FAULTS
  | SOURCE
  | SWAPS 

SHOW PROFILE 및 SHOW PROFILES 문은 현재 세션의 과정에서 실행 된 명령문의 자원 사용량을 나타내는 프로파일 정보를 표시합니다.

참고

이 문은 MySQL 5.6.7의 시점에서 비추천이며, 미래의 MySQL 릴리스에서 제거 될 예정입니다. 대신 성능 스키마를 사용하십시오. 제 22 장 「MySQL 성능 스키마 " 를 참조하십시오.

프로파일 링은 profiling 세션 변수에 의해 제어됩니다. 이 기본값은 0 ( OFF )입니다. 프로파일 링은 profiling 을 1 또는 ON 으로 설정하여 사용할 수 있습니다.

 mysql> SET profiling = 1;

SHOW PROFILES 서버로 전송 된 최신의 문 목록을 표시합니다. 이 목록의 크기는 profiling_history_size 세션 변수에 의해 제어됩니다. 이 기본값은 15입니다. 최대 값은 100입니다. 이 값을 0으로 설정하면 실질적으로 프로파일 링이 비활성화됩니다.

SHOW PROFILE 과 SHOW PROFILES 을 제외한 모든 문이 프로필되기 때문에이 두 문을 프로파일 목록에서 찾을 수 없습니다. 잘못된 형식의 문은 프로파일됩니다. 예를 들어, SHOW PROFILING 잘못된 문이기 때문에 그것을 실행하려고하면 구문 오류가 발생하지만, 프로파일 링 목록에 표시됩니다.

SHOW PROFILE 은 1 개의 문에 대한 자세한 정보를 표시합니다. FOR QUERY n 절을 지정하지 않으면 출력은 최근에 실행 된 문에 관련한 것입니다. FOR QUERY n 이 포함되어있는 경우, SHOW PROFILE 명령문 n 에 대한 정보를 표시합니다. n 값은 SHOW PROFILES 에 의해 표시되는 Query_ID 값에 해당합니다.

LIMIT row_count 절을 지정하면 출력을 row_count 행으로 제한 할 수 있습니다. LIMIT 가 지정되어있는 경우 OFFSET offset 을 추가하여 행 집합이 offset 행 분 오프셋 된 상태에서 출력을 시작할 수 있습니다.

기본적으로 SHOW PROFILE 은 Status 및 Duration 열을 표시합니다. 이 Status 값은 SHOW PROCESSLIST 으로 표시되는 State 값과 비슷하지만, 일부의 상태 값은이 두 문장의 해석에 약간의 차이가 일부있을 수 있습니다 ( 섹션 8.12.5 " 스레드 정보 검사 " 를 참조하십시오).

옵션의 type 값을 지정하면 다음 기타 특정 유형의 정보를 볼 수 있습니다.

  • ALL 은 모든 정보를 표시합니다

  • BLOCK IO 블록 입출력 작업의 수를 표시합니다

  • CONTEXT SWITCHES 는 자발적 및 비자발적 컨텍스트 스위치의 수를 표시합니다

  • CPU 는 사용자와 시스템의 CPU 사용 시간을 표시합니다

  • IPC 는 송수신 된 메시지 수를 표시합니다

  • MEMORY 는 현재 구현되어 있지 않습니다

  • PAGE FAULTS 는 메이저와 마이너 페이지 폴트의 수를 표시합니다

  • SOURCE 소스 코드의 함수 이름을 함수가 포함 된 파일의 이름 및 행 번호와 함께 표시합니다

  • SWAPS 스왑 수를 표시합니다

프로파일 링 세션 단위로 사용할 수 있습니다. 세션이 종료하면 프로파일 링 정보는 손실됩니다.

mysql> SELECT @@profiling;
+-------------+
| @@profiling |
+-------------+
|           0 |
+-------------+
1 row in set (0.00 sec)

mysql> SET profiling = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> CREATE TABLE T1 (id INT);
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW PROFILES;
+----------+----------+--------------------------+
| Query_ID | Duration | Query                    |
+----------+----------+--------------------------+
|        0 | 0.000088 | SET PROFILING = 1        |
|        1 | 0.000136 | DROP TABLE IF EXISTS t1  |
|        2 | 0.011947 | CREATE TABLE t1 (id INT) |
+----------+----------+--------------------------+
3 rows in set (0.00 sec)

mysql> SHOW PROFILE;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| checking permissions | 0.000040 |
| creating table       | 0.000056 |
| After create         | 0.011363 |
| query end            | 0.000375 |
| freeing items        | 0.000089 |
| logging slow query   | 0.000019 |
| cleaning up          | 0.000005 |
+----------------------+----------+
7 rows in set (0.00 sec)

mysql> SHOW PROFILE FOR QUERY 1;
+--------------------+----------+
| Status             | Duration |
+--------------------+----------+
| query end          | 0.000107 |
| freeing items      | 0.000008 |
| logging slow query | 0.000015 |
| cleaning up        | 0.000006 |
+--------------------+----------+
4 rows in set (0.00 sec)

mysql> SHOW PROFILE CPU FOR QUERY 2;
+----------------------+----------+----------+------------+
| Status               | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| checking permissions | 0.000040 | 0.000038 |   0.000002 |
| creating table       | 0.000056 | 0.000028 |   0.000028 |
| After create         | 0.011363 | 0.000217 |   0.001571 |
| query end            | 0.000375 | 0.000013 |   0.000028 |
| freeing items        | 0.000089 | 0.000010 |   0.000014 |
| logging slow query   | 0.000019 | 0.000009 |   0.000010 |
| cleaning up          | 0.000005 | 0.000003 |   0.000002 |
+----------------------+----------+----------+------------+
7 rows in set (0.00 sec)
참고

일부 아키텍처에서는 프로파일 링이 부분적으로 작동하지 않습니다. getrusage() 시스템 호출에 의존하는 값의 경우,이 시스템 호출을 지원하지 않는 Windows 등의 시스템에서는 NULL 이 반환됩니다. 또한 프로파일 링은 스레드 단위가 아니라 프로세스 단위입니다. 즉, 서버에서 사용자 자신의 스레드가 아닌 스레드의 활동이 사용자에게 표시되는 타이밍 정보에 영향을 미칠 수 있습니다.

프로파일 링 정보도 INFORMATION_SCHEMA 의 PROFILING 테이블에서 얻을 수 있습니다. 섹션 21.16 "INFORMATION_SCHEMA PROFILING 테이블" 을 참조하십시오. 예를 들어, 다음 쿼리는 동일한 결과를 생성합니다.

 SHOW PROFILE FOR QUERY 2;

 SELECT STATE, FORMAT (DURATION 6) AS DURATION
 FROM INFORMATION_SCHEMA.PROFILING
 WHERE QUERY_ID = 2 ORDER BY SEQ;


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved