Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.3 |  CUBRID 9.0.0 | 

질의 실행 계획 보기

질의 편집기 옵션에서 [질의 실행 계획 보기 설정]을 선택하면, 질의 편집기의 툴바에서 [질의 실행 계획 보기 icon_queryplan.png]가 활성화된다.

사용자는 툴바에서 [질의 실행 계획 보기 icon_queryplan.png]를 클릭하거나 <Ctrl+L>을 눌러서, 질의를 실제로 수행하지 않고도 선택된 질의가 어떻게 수행될지에 대한 실행 계획을 확인할 수 있다. 이미 수행된 질의에 대한 실행 계획도 확인할 수 있다.

질의 편집기 하단에는 질의 실행 계획이 항상 보이므로 데이터베이스에 접속하지 않은 상태에서도 실행 계획 이력 파일을 열어서 기존의 실행 계획을 점검해 볼 수 있다.

질의 실행 계획 기능은 SQL의 실행 계획을 조회하는 것으로, 일회성이 아닌 실행 계획을 지속적으로 관리하고 조회하기 위한 수집 목적으로 사용한다. 실행 계획을 조회할 때마다 질의 실행 계획 이력에 누적이 되고, 누적된 자료를 .xml 파일로 저장할 수 있다. 저장된 .xml 파일을 열면 당시의 실행 계획과 실행된 SQL을 조회해 볼 수 있다. 일회성 조회가 목적이라면, 툴바에서 [수집 이력 안 남기기 icon_nohistory.png]를 선택하여 이력을 남기지 않고 현재 실행 계획을 임시로 조회할 수 있다.

질의 실행 계획은 툴바, 실행 계획 출력 창, 선택된 실행 계획에 대한 원문 출력 창 그리고 실행 계획 이력 창으로 구성되어 있다.

질의 실행 계획 탭

질의를 선택하고 툴바에서 [질의 실행 계획 보기 icon_queryplan.png]를 클릭하면 아래 그림과 같이 [질의 실행 계획] 탭에 질의 수행 계획이 출력된다. [질의 실행 계획] 탭은 해당 질의에 대한 실행 계획을 트리 구조로 요약하여 보여준다.

[질의 실행 계획] 탭은 [질의 결과] 탭 오른쪽에 있으며, 질의 결과를 보다가 [질의 실행 계획] 탭으로 전환할 수 있다.

manager_queryeditor_queryplan_plan.jpg

질의 실행 계획 툴바

질의 실행 계획 툴바에는 다음과 같은 기능이 있다.

  • 새 파일 icon_new.png: 현재까지 수집하고 조회하던 질의 실행 계획 이력을 모두 초기화하고 다시 수집한다. 기존에 하던 작업을 초기화할 때 사용한다.
  • 파일 열기 icon_open.png: 기존에 저장된 실행 계획 이력 파일을 불러온다. .xml 파일을 열면 당시의 실행 계획을 조회해 볼 수 있다.
  • 질의 실행 계획 저장 icon_save.png , 질의 실행 계획 새 이름으로 저장 icon_saveas.png: 수집한 실행 계획을 외부 파일로 저장할 수 있다. 파일의 확장자는 xml이다.
  • 수집 이력 안 남기기 icon_nohistory.png: 질의 편집기에서 질의 실행 계획 보기를 이용하여 실행 계획을 조회하면 항상 실행 계획 이력 창에 이력이 추가된다. 이력에 남기지 않고 임시로 조회하려면 [수집 이력 안 남기기 icon_nohistory.png]를 클릭한다. 실행 계획 출력 창 아래의 탭 이름은 "계획"으로만 출력된다.
  • 실행 계획 형식 icon_tree.png icon_text.png: 클릭하면 텍스트형 icon_text.png 또는 계층형 icon_tree.png으로 전환된다. 데이터베이스에서 생성하는 가공되지 않은 실행 계획 소스를 텍스트 형식으로 볼 수 있다.
  • manager_queryeditor_queryplan_text.jpg
  • 수집 이력창 출력/숨김 icon_show.png icon_hide.png: 오른쪽의 수집 이력 창을 보거나 숨길 수 있다.
  • 실행 계획 이력 파일: 실행 계획 이력을 파일로 저장하였거나 기존에 저장된 파일을 열었을 경우에는 현재 이용중인 실행 이력 파일 이름이 출력된다.
  • manager_queryeditor_queryplan_file.gif
실행 계획 출력 창

실행 계획 출력 창에는 단계별로 실행된 실행계획이 계층형(tree)으로 출력된다.

세로축의 각 항목을 노드(node)라고 부르며 각 노드마다 데이터의 내용은 다르다. 위에서 아래로 내려가면서 본다.

가로축은 항목(item)이라고 부르며 유형, 테이블, 인덱스, 검색조건, CPU I/O 비용, Disk I/O 비용, 전체(ROW/PAGE)으로 구분된다.

manager_queryeditor_queryplan_output.jpg

  • 유형: sscan, iscan, idx-join 등과 같이 실행 계획상의 각 노드별 질의 최적화기의 실행 방법을 의미한다.
  • 테이블: 해당 노드가 실행될 때 참조하는 테이블(class), 뷰(virtual class) 이름과 별명(alias)이 함께 출력이 된다.
  • 인덱스: iscan 유형의 경우 사용되는 인덱스명이 출력된다.
  • 검색 조건: 결합(join) 조건, 필터 조건 등이 출력된다. 가독성을 위해 내용은 숨겨져 있으며 +를 클릭하여 하위 노드를 펼치면 상세히 출력된다. 또한 검색 조건별로 별도의 색깔로 볼 수 있다.
  • 비용: 실행 계획에서 출력하는 비용은 CPU, Disk I/O 비용이다. 각각 고정 비용과 가변 비용으로 구분하여 출력된다.
  • 전체(r/p): 가져올(fetch) 데이터를 만들기 위해 사용되는 테이블의 전체 행의 개수(rows)와 페이지 수(pages)가 출력된다.

질의 실행 계획 출력 창의 아래쪽에는 실행 계획 창에서 선택한 실행 계획의 원문이 출력된다.

manager_queryeditor_queryplan_output2.jpg

실행 계획 이력 창

실행 계획 이력 창에는 실행 계획을 수행할 때마다 이력이 누적되어 출력된다. #은 누적 순번이며 실행 계획 출력 창 아래의 탭 번호와 일치한다. 일자는 실행계획을 실행한 일시이며, 총 비용은 CPU와 Disk I/O의 합이다. 이 실행 계획 이력 창의 항목을 더블 클릭을 하면 해당 실행 계획을 실행 계획 출력 창에서 다시 볼 수 있다.

manager_queryeditor_queryplan_history.jpg

질의 실행 계획 활용

질의 실행 계획 기능을 활용하면 실행 계획과 해당 테이블의 스키마를 동시에 보면서 분석할 수 있다.

질의 실행 계획 출력 창에서 테이블이 있는 행을 마우스 오른쪽 버튼 클릭하여 [스키마 정보 보기]를 선택하면, 해당 테이블의 스키마 정보를 별도로 열어서 같이 볼 수 있다.

manager_queryeditor_queryplan_context.jpg

스키마 정보 창을 CUBRID 매니저 밖으로 끌어서 놓으면 별도의 윈도우로 볼 수도 있다. 이는 다중 모니터를 사용하는 환경에서 편리하게 활용할 수 있다.

manager_queryeditor_queryplan_schema.jpg