• 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.7 행 레벨 프로브

*row-{start,done} 프로브는 행 조작이 스토리지 엔진에 푸시 다운 될 때마다 트리거됩니다. 예를 들어, 100 행의 데이터에 대해 INSERT 문을 실행할 때, 각각의 행 삽입에 insert-row-start 및 insert-row-done 프로브가 모두 100 회 트리거됩니다.

  insert-row-start (database, table)
 insert-row-done (status)

 update-row-start (database, table)
 update-row-done (status)

 delete-row-start (database, table)
 delete-row-done (status) 
  • insert-row-start : 행이 테이블에 삽입되기 전에 트리거됩니다.

  • insert-row-done : 행이 테이블에 삽입 된 후 트리거됩니다.

  • update-row-start : 행이 테이블에서 업데이트되기 전에 트리거됩니다.

  • update-row-done : 행이 테이블에서 업데이트되기 전에 트리거됩니다.

  • delete-row-start : 행이 테이블에서 제거되기 전에 트리거됩니다.

  • delete-row-done : 행이 테이블에서 제거되기 전에 트리거됩니다.

프로브에 의해 지원되는 인수는 각각의 경우에 해당하는 start 와 done 프로브와 일관성이 있습니다.

  • database : 데이터베이스 이름.

  • table : 테이블 이름.

  • status : 상태에서 정상적인 경우 0, 실패라면 1.

행 수준의 프로브는 개별 행 액세스에 대해 트리거되기 때문에 이러한 프로브는 초당 수천 번 트리거 될 가능성이 있고, 모니터링 스크립트 및 MySQL 모두에 해로운 영향을 미칠 수 있습니다. DTrace 환경에서는 성능에 악영향을 방지하기 위해 이러한 프로브의 트리거를 제한하도록하십시오. 프로브의 사용을 자제하거나 이러한 프로브를보고하기위한 카운터 함수 또는 집계 함수를 사용하여 스크립트가 종료 한 때 또는 query-done 또는 query-exec-done 프로브의 일부로 요약 제공하도록하십시오.

다음 예제 스크립트는 대규모 쿼리에서 각 행 작업 기간을 요약합니다.

  #! / usr / sbin / dtrace -s

 #pragma D option quiet

 dtrace ::: BEGIN
 {
    printf ( "% - 2s % -10s % -10s % 9s % 9s % -s \ n"
           "St", "Who", "DB", "ConnID", "Dur ms", "Query");
 }

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

 mysql * ::: query-done
 {
    this-> elapsed = (timestamp - self-> querystart) / 1000000;
    printf ( "% 2d % -10s % -10s % 9d % 9d % s \ n",
           arg0, self-> who, self-> db,
           self-> connid, this-> elapsed, self-> query);
 }

 mysql * ::: query-done
 / self-> rowdur /
 {
    printf ( "% 34s % 9d % s \ n", "", (self-> rowdur / 1000000) "-> Row ops");
 }

 mysql * ::: insert-row-start
 {
    self-> rowstart = timestamp;
 }

 mysql * ::: delete-row-start
 {
    self-> rowstart = timestamp;
 }

 mysql * ::: update-row-start
 {
    self-> rowstart = timestamp;
 }

 mysql * ::: insert-row-done
 {
    self-> rowdur + = (timestamp-self-> rowstart);
 }

 mysql * ::: delete-row-done
 {
    self-> rowdur + = (timestamp-self-> rowstart);
 }

 mysql * ::: update-row-done
 {
    self-> rowdur + = (timestamp-self-> rowstart);
 }

데이터를 테이블에 삽입하는 쿼리와 함께 위의 스크립트를 실행하면 생의 행 삽입을 실행하는 데 걸린 정확한 시간을 모니터 할 수 있습니다.

  St Who DB ConnID Dur ms Query
  0 @localhost test 13 20767 insert into t1 (select * from t2)
                                         4827 -> Row ops


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