• 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 서버관리
  • 1. MySQL Server
    2. MySQL Server 로그
    3. 하나의 시스템에서 여러 MySQL 인스턴스 실행
    4. DTrace를 사용하여 mysqld 추적
    1. mysqld DTrace 프로브 설명
    1. 연결 프로브
    2. 명령 프로브
    3. 쿼리 프로브
    4. 쿼리 분석 프로브
    5. 쿼리 캐시 프로브
    6. 쿼리 실행 프로브
    7. 행 레벨 프로브
    8. 행 읽기 프로브
    9. 인덱스 프로브
    10. 잠금 프로브
    11. 파일 정렬 프로브
    12. 명령문 프로브
    13. 네트워크 프로브
    14. Keycache 프로브
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 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 새로운 기능

5.4.1.3 쿼리 프로브

query-start 및 query-done 프로브는 특정 쿼리가 서버에 의해 수신 된 쿼리가 실행되고 정보가 클라이언트에 성공적으로 전송 된 때 트리거됩니다.

  query-start (query, connectionid, database, user host)
 query-done (status) 
  • query-start : 클라이언트에서 쿼리 문자열을받은 후에 트리거됩니다. 인수는 다음과 같습니다.

    • query : 전송 된 쿼리의 전체 텍스트.

    • connectionid : 쿼리를 보낸 클라이언트의 연결 ID. 이 연결 ID는 클라이언트가 처음 연결했을 때 반환되는 연결 ID와 SHOW PROCESSLIST 의 출력 Id 값과 동일합니다.

    • database : 쿼리가 실행되는 데이터베이스의 이름.

    • user : 서버에 연결하는 데 사용되는 사용자 이름입니다.

    • host : 클라이언트의 호스트 이름입니다.

  • query-done : 쿼리가 실행되는 클라이언트에 정보를 반환 할 때 트리거됩니다. 이 프로브는 단일 인수 status 를 저장하고 쿼리가 성공적으로 실행되면 0을 반환하고 오류가 발생한 경우 1을 반환합니다.

다음의 D 스크립트를 사용하여 각 쿼리의 실행 시간에 대한 간단한 리포트를 얻을 수 있습니다.

  #! / usr / sbin / dtrace -s

 #pragma D option quiet

 dtrace ::: BEGIN
 {
    printf ( "% - 20s % -20s % -40s % -9s \ n", "Who", "Database", "Query", "Time (ms)");
 }

 mysql * ::: query-start
 {
    self-> query = copyinstr (arg0);
    self-> connid = arg1;
    self-> db = copyinstr (arg2);
    self-> who = strjoin (copyinstr (arg3) strjoin ( "@", copyinstr (arg4)));
    self-> querystart = timestamp;
 }

 mysql * ::: query-done
 {
    printf ( "% - 20s % -20s % -40s % -9d \ n", self-> who, self-> db, self-> query,
           (timestamp - self-> querystart) / 1000000);
 } 

위의 스크립트를 실행하면 쿼리 실행 시간에 대한 기본적인 개요를 이해할 수 있습니다.

  shell> ./query.d
 Who Database Query Time (ms)
 root @ localhost test select * from t1 order by i limit 10 0
 root @ localhost test set global query_cache_size = 0 0
 root @ localhost test select * from t1 order by i limit 10 776
 root @ localhost test select * from t1 order by i limit 10 773
 root @ localhost test select * from t1 order by i desc limit 10 795 


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