Background Image
운영관리
2015.12.29 08:59

cubrid plandump ( plan cache정보확인)

조회 수 4300 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
159 질의작성 function based index 대체 방법 남재우 2010.07.01 13420
158 응용개발 embedded sql 에서 char 사용시 주의 사항 admin 2008.11.21 19008
157 운영관리 cubrid_service.exe 가 CPU 를 지속적으로 일정부분 점유하는 경우 남재우 2010.01.01 13030
156 응용개발 cubrid_fetch_all() php 함수로 만들어 사용하기 file 시난 2009.06.30 18619
155 기타 cubrid: error while loading shared libraries 에러가 발생했을 경우 대처 웁쓰 2009.05.19 22437
154 운영관리 cubrid.conf파일 적용의 우선 순위와 HOST적용 우선 순위 cubebridge 2009.11.14 13369
153 응용개발 cubrid-php module r2.2 이상 버젼에서 configure시에 주의사항 seongjoon 2010.07.20 14007
» 운영관리 cubrid plandump ( plan cache정보확인) file 주현 2015.12.29 4300
151 CUBRID 매니저 cubrid manager server 구동 시 no "events" section in configuration 오류 발생 손승일 2014.07.03 10262
150 기타 csql에서 Java SP를 이용 조회 시 한글 깨짐현상 조치방법 cubebridge 2009.05.21 21044
149 운영관리 csql 인터프리터를 통해 쿼리 수행시간을 확인하는 방법. file seongjoon 2009.06.30 13196
148 운영관리 csql 데이터 입력방법 정만영 2009.06.09 213276
147 기타 XE(구 제로보드XE) 에서 로그인이 되지 않을 경우 해결법 Prototype 2009.04.16 26993
146 운영관리 Window서버 cmd창에서 CUBRID 구동 후 cmd창을 닫을 시 DB서비스 중단 조치방법 cubebridge 2009.10.29 16463
145 응용개발 Windows에서 32bit 버전의 PHP 설치 후 CUBRID와 연동 실패 시 해결 방법 file 진우진 2016.03.28 4523
144 응용개발 Windows 환경에서 JAVA SP 사용 utf-8 한글 깨짐 해결 file 손승일 2016.07.01 4592
143 운영관리 Windows 서버에서 [장치에 쓰기 캐싱 사용] 설정/해제에 따른 성능 차이 이용미 2012.06.30 20231
142 응용개발 Weblogic 10.0 사용시 JDK 1.5를 사용한 JDBC 드라이버 사용시 주의사항. cubebridge 2012.02.22 51957
141 응용개발 WHERE 조건에서 다중 컬럼 IN절 처리 최적화 방법 (cubrid + ibatis) 1 이상신 2015.08.21 55132
140 질의작성 VALUES 절 활용하기 황영진 2020.05.13 814
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 14 Next
/ 14

Contact Cubrid

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