Background Image
운영관리
2015.12.29 08:59

cubrid plandump ( plan cache정보확인)

조회 수 4297 추천 수 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 유틸리티를 사용하여 정상적으로 동작하고 있는지 확인이 가능하다.

 

 

 

 

 


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
239 질의작성 컬럼 사이즈 변경 방법 정만영 2009.03.14 24330
238 CUBRID 매니저 CUBRID Manager Client 에러(Java관련). file 윤희서 2009.02.06 24152
237 질의작성 데이터 값 작은 따옴표(') 넣기 정만영 2009.03.20 23805
236 운영관리 CUBRID 에서의 사용자 권한관리 방법 file cubebridge 2012.04.14 23649
235 질의작성 쿼리로 테이블이 존재하는지 확인하기 시난 2009.12.28 23519
234 질의작성 pivot() 간략하게 구현하기 남재우 2009.06.24 23423
233 CUBRID 매니저 데이터베이스 자동시작 설정(CUBRID 7.3.0). 윤희서 2009.01.17 23155
232 마이그레이션 MySQL+XE를 CUBRID+XE로 운영하기 – mysqldump파일과 CMT사용 file cubebridge 2012.11.13 23071
231 운영관리 64비트 윈도우환경에서 32비트 ODBC 사용하기 Prototype 2009.12.09 22672
230 마이그레이션 MySQL에서 CUBRID로 갈아탈 때 알아야 할 것 cubebridge 2012.11.13 22611
229 질의작성 임의의 컬럼을 rownum 으로 업데이트 하기 Prototype 2009.07.01 22528
228 CUBRID 매니저 큐브리드 매니저 "선택한 JDBC 드라이버는 CUBRID를 지원하지 않습니다." 해결방법 file 정만영 2010.01.29 22513
227 기타 cubrid: error while loading shared libraries 에러가 발생했을 경우 대처 웁쓰 2009.05.19 22437
226 운영관리 HP-ux에서 jvm loading이 실패하는 경우 조치 사항 admin 2008.11.21 22432
225 응용개발 CUBRID에서 euc-kr의 한글 데이터를 utf-8의 한글 데이터로 변경 시 주의할 점 cubebridge 2010.04.01 22400
224 응용개발 윈도우 환경에서 PHP 모듈 로드를 못 할 경우 해결법 3 Prototype 2009.11.26 22397
223 질의작성 문자 코드셋(UTF-8, EUC-KR) 사용시 CUBRID 는? 남재우 2010.01.01 22396
222 질의작성 테이블 데이터 복사 하기 정만영 2009.03.14 22298
221 운영관리 백업파일을 이용하여 데이터베이스가 없는 다른 서버에서 복구하는 방법 admin 2008.11.21 22040
220 마이그레이션 타 DB 에서 마이그레이션시 질의 변경 샘플 - CASE 문 웁쓰 2009.12.31 21923
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