Background Image
조회 수 17565 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

질의 튜닝을 할때 종종 바인딩되는 값을 모르는 상태에서 질의 플랜결과를 보고자 하는 경우가 있습니다.

주로 프로그램 소스에 preparestatement 형태로 작성된 질의 문을 발췌해서 플랜을 보려고 경우가 이에 해당할 입니다.

예를 들면 select * from participant where host_year = ?; 같은 질의를 수행하여 플랜을 보고자 하는 경우가 되겠죠.
이런 경우에 

l  CSQL 인터브리터의 옵션 -e 옵션을 사용하여 DB 접속하고

l  set optimization level 514(또는 513, 257, 258 자세한 내용은 큐브리드 매뉴얼>CUBRID SQL 설명서>질의 최적화> 쿼리 실행 계획 보기 참조) 실행하여 질의 플랜 보기 설정을

l  질의를 수행하면 됩니다.

-e 옵션은 에러가 발생하더라도 세션을 종료하지 않고 계속 실행하라는 옵션입니다.

아래는 사용예제 입니다.
host_year 컬럼에 비교되는 값으로 상수가 아닌 '?'을 입력하여도 플랜 정보가 출력됨을 확인할 수 있습니다.

C:>csql -e demodb  

         CUBRID SQL Interpreter 

Type `;help' for help messages. 

csql> set optimization level 514

csql> ;x 

Current transaction has been committed. 

1 command(s) successfully processed. 

csql> select * from participant where host_year = ?

csql> ;x

Join graph segments (f indicates final):

seg[0]: [0]

seg[1]: host_year[0] (f)

seg[2]: nation_code[0] (f)

seg[3]: gold[0] (f)

seg[4]: silver[0] (f)

seg[5]: bronze[0] (f)

Join graph nodes:

node[0]: participant participant(916/16) (sargs 0)

Join graph terms:

term[0]: participant.host_year= ?:0  (sel 0.2) (sarg term) (not-join eligible) (indexable host_year[0]) (loc 0) 

Query plan: 

iscan

    class: participant node[0]

    index: fk_participant_host_year term[0]

    cost:  fixed 2(0.0/2.0) var 4(0.5/3.0) card 183 

Query stmt: 

select participant.host_year, participant.nation_code, participant.gold, participant.silver, participant.bronze from participant participant where participant.host_year= ?:0 

In the command from line 1, 

ERROR: Too few input host variables provided. 

0 command(s) successfully processed.

csql>



 


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
59 운영관리 CUBRID HA 구성 후 구동중인 slave/replica node에서 write 하기 정만영 2015.07.15 9044
58 질의작성 전체 테이블 UPDATE시 SELECT, UPDATE를 통한 INDEX SCAN방식으로 테이블 X_LOCK을 방지하자! file 이경오 2015.08.13 13802
57 운영관리 브로커 동적 파라미터 변경 방법 정만영 2015.08.13 7566
56 응용개발 WHERE 조건에서 다중 컬럼 IN절 처리 최적화 방법 (cubrid + ibatis) 1 이상신 2015.08.21 55143
55 질의작성 테이블 용량 산정 쿼리 성진 2015.12.08 7398
54 질의작성 오라클의 DBMS_RANDOM.STRING() 함수를 CUBRID 식으로 구현하는 방법 이경오 2015.12.08 7974
53 응용개발 maven에서 CUBRID JDBC Driver 추가하기 file 김승훈 2015.12.09 8947
52 운영관리 큐브리드 서비스 재구동 시 cubrid manager server start: fail 오류 해결 방법 진우진 2015.12.16 7735
51 운영관리 시스템 부하가 많지 않음에도 불구하고 질의 수행이 느린 경우 THP 기능 설정 확인 및 해제 진우진 2015.12.16 7529
50 질의작성 일정 범위 임의의 정수 생성 방법(random 함수 응용) 손승일 2015.12.22 6472
49 CUBRID 매니저 테이블 명세서 한 시트로 합치기 file 성진 2015.12.24 16528
48 마이그레이션 CM(CUBRID Manager)을 이용하여 행정표준코드시스템의 기관코드 가져오기 file 권호일 2015.12.28 6329
47 마이그레이션 CUBRID와 Oracle의 NULL과 '' (empty string)의 처리 차이점 1 권호일 2015.12.29 15430
46 운영관리 cubrid plandump ( plan cache정보확인) file 주현 2015.12.29 4300
45 응용개발 CUBRID HA 제약 사항 및 확인 방법 손승일 2015.12.29 5305
44 운영관리 브로커와 DB 간 연결 테스트 박동윤 2015.12.29 4934
43 질의작성 Cubrid는 어떤 쿼리를 동일한 쿼리로 판단할까? 이상신 2015.12.30 4011
42 운영관리 CUBRID BACKUP (linux, window) file 박동윤 2015.12.30 6249
41 마이그레이션 MySQL 테이블 크기 조사하기-공유 주현 2015.12.31 6206
40 응용개발 CUBRID DB에서 critical section 정보 출력하기 file 주현 2015.12.31 4607
Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
/ 14

Contact Cubrid

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