Background Image
운영관리
2015.12.29 08:59

cubrid plandump ( plan cache정보확인)

조회 수 4292 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

CUBRID 가 제공하는 기능에서 plandump]라는 유틸리티가 있다.

 

매뉴얼을 (Ver. CUBRID 9.3 기준) 보면 아래와 같다.

 

 

질의 수행 계획 캐시 확인

cubrid plandump 유틸리티를 사용해서 서버에 저장(캐시)되어 있는 질의 수행 계획들의 정보를 출력할 수 있다.

cubrid plandump [options] database_name
  • cubrid: CUBRID 서비스 및 데이터베이스 관리를 위한 통합 유틸리티이다.
  • plandump: 대상 데이터베이스에 대하여 현재 캐시에 저장되어 있는 질의 수행 계획을 출력하는 명령이다.
  • database_name: 데이터베이스 서버 캐시로부터 질의 수행 계획을 확인 또는 제거하고자 하는 데이터베이스 이름이다

옵션 없이 사용하면 캐시에 저장된 질의 수행 계획을 확인한다.

cubrid plandump testdb

다음은 cubrid plandump에 대한 [options]이다.

-d, --drop

캐시에 저장된 질의 수행 계획을 제거한다.

cubrid plandump -d testdb
-o, --output-file=FILE

캐시에 저장된 질의 수행 계획 결과 파일에 저장

cubrid plandump -o output.txt testdb

 (출처: http://cubrid.org/manual/ko/9.3.0/admin/admin_utils.html#plandump )

 

 

서버에 저장(캐시)되어 있는 질의 수행 계획들의 정보를 출력한다고 하는데..

어떻게 동작되는지, 활용방법은 무엇인지 간단히 정리한다.

 

 

 

[ 신규 DB생성 후의 plandump-화면1 ]

111.PNG

 

 

[몇 가지 질의문 수행 후의 plandump -화면2]

222.PNG

 

 

 [화면2]에서 보다시파, CUBRID 서버에 캐시되어 있던 질의 수행 계획들을 출력하여 보여준다.

항목에 대한 설명은 아래와 같다.

 

 항목

설명 

 MAX

 plan cache에 저장할 수 있는 최대 항목 수

 NUM

 현재 저장되어 있는 항목 수

 LOOKUP

 LOOKUP한 횟수

 HIT

 HIT한 횟수

 MISS

 실패한 횟수. 이는 대체로 NUM과 비슷함.

 FULL

 FULL이 났던 횟수

 

 

CUBRID는 기본적으로 Plan cache를 사용한다.

질의문이 주어지면 Clientxasl stream을 생성하여 server로 전달하게 된다. Server는 전달받은 xasl stream xasl tree로 변환한 다음에 xasl tree를 수행하여 질의 결과를 client로 전달한다. 이후에 xasl tree xasl stream을 버리게 된다. Plan cacheServer xasl stream을 버리지 않고 재사용하는 기능이다.

 

Plan cache 기능을 켜면,

질의 문은 prepare/execute의 두 단계로 수행된다.

1.   Client는 질의 문 string server로 전달하여 server에 저장된 xasl stream ID를 얻어온다.(이때 저장되어 있지 않으면 xasl stream을 생성, 전달하여 server에 저장하도록 한 이후에 xasl stream ID를 얻어온다. Xasl stream ID XASL_ID라고 한다. XASL_ID를 얻는 것을 prepare 단계라 한다.

2.   Client XASL_ID server로 전달하여 질의문의 결과집합을 요청한다. Server는 해당 xasl stream xasl tree로 변환하여 이를 수행하여 질의 결과를 client로 전달하고 xasl tree를 버린다. 이를 execute 단계라 한다.

 

장점으로,

▶▶ client에서 xasl 생성 비용이 제거된다. (장점으로 인한 성능향상이 큼)

단점으로,

▶▶ client에서 XASL_ID를 얻어오기 위해서 별도의 통신 비용, server cache 탐색 비용이 발생한다. Cache full 발생시에 victimize 비용이 발생한다.(prepare 단계)

▶▶ client에서 XASL_ID를 주면 해당 xasl stream이 저장되어 있는 파일을 읽는 비용이 발생한다.(최악의 경우에 Disk I/O 발생)

 

 

CUBRID에서 기본적으로 Plan cache기능을 제공하고 있지만, plandump 유틸리티를 사용하여 정상적으로 동작하고 있는지 확인이 가능하다.

 

 

 

 

 


  1. MySQL 테이블 크기 조사하기-공유

    Date2015.12.31 Category마이그레이션 By주현 Views6197
    Read More
  2. CUBRID BACKUP (linux, window)

    Date2015.12.30 Category운영관리 By박동윤 Views6220
    Read More
  3. Cubrid는 어떤 쿼리를 동일한 쿼리로 판단할까?

    Date2015.12.30 Category질의작성 By이상신 Views4006
    Read More
  4. 브로커와 DB 간 연결 테스트

    Date2015.12.29 Category운영관리 By박동윤 Views4924
    Read More
  5. CUBRID HA 제약 사항 및 확인 방법

    Date2015.12.29 Category응용개발 By손승일 Views5293
    Read More
  6. cubrid plandump ( plan cache정보확인)

    Date2015.12.29 Category운영관리 By주현 Views4292
    Read More
  7. CUBRID와 Oracle의 NULL과 '' (empty string)의 처리 차이점

    Date2015.12.29 Category마이그레이션 By권호일 Views15344
    Read More
  8. CM(CUBRID Manager)을 이용하여 행정표준코드시스템의 기관코드 가져오기

    Date2015.12.28 Category마이그레이션 By권호일 Views6325
    Read More
  9. 테이블 명세서 한 시트로 합치기

    Date2015.12.24 CategoryCUBRID 매니저 By성진 Views16477
    Read More
  10. 일정 범위 임의의 정수 생성 방법(random 함수 응용)

    Date2015.12.22 Category질의작성 By손승일 Views6455
    Read More
  11. 시스템 부하가 많지 않음에도 불구하고 질의 수행이 느린 경우 THP 기능 설정 확인 및 해제

    Date2015.12.16 Category운영관리 By진우진 Views7507
    Read More
  12. 큐브리드 서비스 재구동 시 cubrid manager server start: fail 오류 해결 방법

    Date2015.12.16 Category운영관리 By진우진 Views7691
    Read More
  13. maven에서 CUBRID JDBC Driver 추가하기

    Date2015.12.09 Category응용개발 By김승훈 Views8903
    Read More
  14. 오라클의 DBMS_RANDOM.STRING() 함수를 CUBRID 식으로 구현하는 방법

    Date2015.12.08 Category질의작성 By이경오 Views7959
    Read More
  15. 테이블 용량 산정 쿼리

    Date2015.12.08 Category질의작성 By성진 Views7371
    Read More
  16. WHERE 조건에서 다중 컬럼 IN절 처리 최적화 방법 (cubrid + ibatis)

    Date2015.08.21 Category응용개발 By이상신 Views55069
    Read More
  17. 브로커 동적 파라미터 변경 방법

    Date2015.08.13 Category운영관리 By정만영 Views7555
    Read More
  18. 전체 테이블 UPDATE시 SELECT, UPDATE를 통한 INDEX SCAN방식으로 테이블 X_LOCK을 방지하자!

    Date2015.08.13 Category질의작성 By이경오 Views13771
    Read More
  19. CUBRID HA 구성 후 구동중인 slave/replica node에서 write 하기

    Date2015.07.15 Category운영관리 By정만영 Views9034
    Read More
  20. INSERT수행 시, 현재날짜,현재시각으로 자동 입력하는 방법

    Date2015.07.08 Category질의작성 By주현 Views25105
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 14 Next
/ 14

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales