CUBRID 매니저 질의 편집기는 모든 DML, DDL, DCL 문의 수행을 지원하는 질의 도구로서, 보다 쉽고 편리하게 질의를 편집하고 실행할 수 있다. 질의 편집기를 실행하려면 메뉴에서 |도구| > |새 질의 편집기|를 선택하거나, 툴바에서 |새 질의 편집기|를 클릭한다. 또는 해당 데이터베이스를 마우스 오른쪽 버튼 클릭하여 |새 질의 편집기|를 선택한다.
질의 편집기 화면은 위쪽의 질의 편집 창과 아래쪽의 질의 결과 창으로 구분할 수 있다.
질의 편집 창에서는 수행할 질의를 입력하고 편집하며, 질의 편집기에서 주로 사용하는 기능을 아이콘으로 보여주는 툴바를 포함한다.
질의 결과 창에서는 수행된 질의별 결과를 탭 형식으로 보여주며, 수행한 질의 및 해당 질의의 수행 시간을 확인할 수 있다.
질의 작성시 길이가 긴 SQL을 작성할 경우 기존 SQL과 구분을 위해 별도의 질의 편집기를 열었으나, 질의 편집기 내에 탭을 추가하여 탭 전환만으로 하나의 DB에 여러 SQL을 구분하여 작성하고 실행할 수 있습니다. 질의 편집기 탭으로 1개의 질의 편집기 내에서 다량의 SQL을 구분하여 편집할 수 있습니다.
질의 결과 창은 수행된 질의의 결과를 보여주는 창으로, 여러 개의 질의가 수행된 경우 질의 결과 창 아래에 질의별 탭으로 구분된다. 각 탭을 선택하여 해당 질의의 수행 결과를 확인할 수 있다.
질의 결과 창은 결과 탐색, 수행 질의 정보, 수행 시간 및 검색 건수를 제공하는 영역으로 구분된다.
다중 질의 기능
질의문 마지막에 세미콜론(;)을 입력하여, 하나의 질의가 끝나고 다음 질의가 시작됨을 명시한다. 여러 개의 질의가 존재할 경우, 각 질의는 순차적으로 수행되며, 질의별로 질의 결과 창에 결과 탭이 형성된다. 세미콜론으로 구분하지 않고 다중 질의를 수행하면, 첫 번째 질의만 수행되고 이후의 질의는 무시된다.
질의 취소 기능
수행 중인 질의를 중지시킬 수 있는 기능이다. 질의 수행 중 |정지|를 클릭하면 상황에 따라 다음과 같이 동작한다.
질의 결과 편집 기능
실행한 질의 결과를 직접 편집하거나 레코드를 추가할 수 있는 기능이다. 질의 편집기의 결과 창에서 |편집 가능|을 클릭하여 |편집 가능| 상태로 변경하면 질의한 결과에 기본키 컬럼이 모두 포함된 출력된 결과에서 추가, 편집, 삭제가 가능하며 다음과 같다.
질의 편집기가 자동 커밋이 아닌 상태에서 트랜잭션이 존재하고 있을 때에는 트랜젝션에 혼란을 막기 위해 저장 버튼을 클릭할 수 없게 되어 있다. 필요할 경우에는 질의 편집기상에 있는 커밋 또는 롤백을 실행후 결과를 저장하면 된다. 만약, 기본키가 없는 테이블 또는 SELECT시 기본키가 모두 포함되지 않은 경우에는 데이터 보호를 위해 결과 편집을 할 수 없다.
데이터베이스 용도에 따른 배경색 출력 기능
일반적으로 개발용, 운영용으로 구분하여 데이터베이스를 관리하고 있다. 그러나, 개발용, 운영용에 대한 구분이 없을 경우 개발 서버에 실행할 질의를 운영 서버에 실행하는 실수를 유발하게 한다. CUBRID 매니저는 데이터베이스 접속 또는 접속 정보 변경시 데이터베이스의 사용 목적을 지정할 수 있도록 지원한다.
이렇게 지정한 목적에 따라 색상이 지정되고 질의 편집기의 편집창 배경색으로 이용이 되어 현재 개발 서버에서 질의를 하는지 아니면 운영 서버에서 질의를 하는지 바로 확인이 가능하다.
키워드 추천 기능
SELECT, UPDATE 등의 키워드와 테이블명을 쉽게 입력할 수 있도록 문자를 입력하면 해당하는 추천 키워드 및 테이블 이름 목록을 보여준다. 또한, SELECT FROM athlete을 입력한 다음 SELECT에 CTRL+SPACE를 하거나 특정 문자를 입력하면 athlete 테이블에서 사용하는 컬럼명 목록을 보여준다.
키워드 추천 SQL 선택 기능
키워드 추천 기능에서 SELECT, INSERT, UPDATE, DELETE에서 오른쪽 키를 누르면 해당하는 최근 실행된 SQL이 출력되고 CTRL + R과 동일하게 ENTER를 누르면 질의 편집기에 입력이 되고 실행도 가능하다.
키워드 자동 대문자 변환 기능
질의 편집기에서 SQL 작성시 키워드 자동 변환 기능이 지원된다. 예를 들어, select까지 입력하고 SPACE를 넣으면 select가 자동으로 SELECT로 변환된다. 이 기능을 사용하지 않으려면, |파일| - |기본 설정..| - |질의 편집기 옵션| - |편집중 키워드 자동으로 대문자 만들기 사용하지 않음|을 선택하거나, |키워드와 함수 소문자로 만들기|를 선택하지 않으면 된다.
최근 사용한 SQL 보기
질의 편집기에서 CTRL + R을 누르면 최근 실행하여 성공한 SQL을 선택할 수 있는 창이 출력된다. 원하는 SQL을 선택한 후 ENTER를 누르면 질의 편집기에 입력이 되고 실행도 가능하다. 단, 최근 자주 사용되는 SQL 30개만 출력이 된다.
코드 생성 기능
질의 편집기를 이용하여 작성한 SQL을 프로그램 코드에 입력하기 위해서는 "와 같은 특수 문자를 escape 처리해야하고 각 행마다 ""로 묶어주어야 하며, 보기 좋게 탭이나 공백을 넣어서 SQL을 정리해야 한다. 질의 편집기에서 제공하는 코드 생성 기능을 이용하면 Java, PHP 형식으로 SQL 코드를 바로 사용할 수 있도록 지원한다. SQL을 선택한 후 마우스 오른쪽 버튼의 컨텍스트 메뉴에 |SQL을 PHP 코드로 복사| 또는 |SQL을 Java 코드로 복사|를 이용하여 코드로 생성한 후 원하는 코드에 붙여넣기를 하면 된다. 여러개의 SQL을 동시에 선택한 후 생성하면 개별로 SQL 코드를 만들도록 되어 있어 편리하게 사용할 수 있다.
SQL 즐겨찾기 기능
별도로 작성해둔 SQL 파일을 즐겨찾기해두고 필요할 때마다 불러 쓰거나 다량의 데이터는 실행하도록 할 수 있다. 질의 편집기 툴바에서 |SQL 즐겨찾기| 버튼을 클릭하면 즐겨찾기를 관리하고 실행할 수 있는 대화창을 이용할 수 있다.
|추가|, |삭제|가 가능하며, SQL 즐겨찾기에 등록된 SQL 파일은 특정 데이터베이스에만 나타나는 것이 아니라 모든 질의 편집기에 나오기 때문에 추가할 때마다 메모란에 현재 데이터베이스 정보가 기록되며 사용자가 원하는 대로 수정이 가능하다.
실행 방법은 2가지가 있는데, |질의 편집기로 붙여넣기|, |선택한 SQL 실행|이 있다. 결과 출력이 필요하거나 소량의 SQL이라면 |질의 편집기로 붙여넣기|를 하여 질의 편집기에서 활용하면 되며, 다량의 데이터를 변경하는 경우에는 |선택한 SQL 실행|을 이용하면 된다.
질의 다중 실행
하나의 질의를 N대의 데이테베이스에서 다중 실행하고, 하나의 뷰(독립창)에서 결과를 동시 비교할 수 있습니다.
N대의 데이터베이스에 반복 작업(사용자 추가, 스키마/인덱스 변경 작업)을 수행할 때, HA/복제 환경에서 SELECT문을
실행하면서 결과 비교를 할 때 유용합니다.
단, SELECT문을 다중 실행하시는 경우, 클라이언트가 DB로부터 가져오기(fetch)하는 결과셋 크기 및 로컬 시스템의
메모리 사양에 따라 out of memory 에러가 발생할 수 있습니다.
줄 바로가기
질의 편집기에 입력된 SQL의 길이가 길 경우 CTRL + G를 누르면 원하는 줄로 바로 가기를 지원한다.
질의 편집창 질의 편집 편의성 개선
JOIN 질의를 작성하는 경우 테이블 별칭을 넣기 위해 컬럼을 선택한 후 마우스 우클릭에 있는 "컬럼명 앞 테이블 별칭 일괄 변경"을 선택하여 원하는 별칭을 추가 또는 이미 있을 경우 교체할 수 있다. 단, 함수나 괄호 등으로 시작할 경우에는 아직 지원하지 않는다.
질의 편집기 옵션에서 |질의 실행 계획 보기 설정|을 선택하면, 질의 편집기의 툴바에서 |질의 실행 계획 보기|가 활성화된다.
사용자는 툴바에서 |질의 실행 계획 보기|를 클릭하거나 <Ctrl+L>을 눌러서, 질의를 실제로 수행하지 않고도 선택된 질의가 어떻게 수행될지에 대한 실행 계획을 확인할 수 있다. 이미 수행된 질의에 대한 실행 계획도 확인할 수 있다.
질의 편집기 하단에는 질의 실행 계획이 항상 보이므로 데이터베이스에 접속하지 않은 상태에서도 실행 계획 이력 파일을 열어서 기존의 실행 계획을 점검해 볼 수 있다.
질의 실행 계획 기능은 SQL의 실행 계획을 조회하는 것으로, 일회성이 아닌 실행 계획을 지속적으로 관리하고 조회하기 위한 수집 목적으로 사용한다. 실행 계획을 조회할 때마다 질의 실행 계획 이력에 누적이 되고, 누적된 자료를 .xml 파일로 저장할 수 있다. 저장된 .xml 파일을 열면 당시의 실행 계획과 실행된 SQL을 조회해 볼 수 있다. 일회성 조회가 목적이라면, 툴바에서 |수집 이력 안 남기기|를 선택하여 이력을 남기지 않고 현재 실행 계획을 임시로 조회할 수 있다.
질의 실행 계획은 툴바, 실행 계획 출력 창, 선택된 실행 계획에 대한 원문 출력 창 그리고 실행 계획 이력 창으로 구성되어 있다.
질의 실행 계획 탭
질의를 선택하고 툴바에서 |질의 실행 계획 보기|를 클릭하면 아래 그림과 같이 |질의 실행 계획| 탭에 질의 수행 계획이 출력된다. |질의 실행 계획| 탭은 해당 질의에 대한 실행 계획을 트리 구조로 요약하여 보여준다.
|질의 실행 계획| 탭은 |질의 결과| 탭 오른쪽에 있으며, 질의 결과를 보다가 |질의 실행 계획| 탭으로 전환할 수 있다.
질의 실행 계획 툴바
질의 실행 계획 툴바에는 다음과 같은 기능이 있다.
실행 계획 출력창
실행 계획 출력 창에는 단계별로 실행된 실행계획이 계층형(tree)으로 출력된다.
세로축의 각 항목을 노드(node)라고 부르며 각 노드마다 데이터의 내용은 다르다. 위에서 아래로 내려가면서 본다.
가로축은 항목(item)이라고 부르며 유형, 테이블, 인덱스, 검색조건, CPU I/O 비용, Disk I/O 비용, 전체(ROW/PAGE)으로 구분된다.
질의 실행 계획 출력 창의 아래쪽에는 실행 계획 창에서 선택한 실행 계획의 원문이 출력된다.
그래픽형 실행 계획 출력창

실행 계획 이력창
실행 계획 이력 창에는 실행 계획을 수행할 때마다 이력이 누적되어 출력된다. #은 누적 순번이며 실행 계획 출력 창 아래의 탭 번호와 일치한다. 일자는 실행계획을 실행한 일시이며, 총 비용은 CPU와 Disk I/O의 합이다. 이 실행 계획 이력 창의 항목을 더블 클릭을 하면 해당 실행 계획을 실행 계획 출력 창에서 다시 볼 수 있다.
질의 실행 계획 활용
질의 실행 계획 기능을 활용하면 실행 계획과 해당 테이블의 스키마를 동시에 보면서 분석할 수 있다.
질의 실행 계획 출력 창에서 테이블이 있는 행을 마우스 오른쪽 버튼 클릭하여 |스키마 정보 보기|를 선택하면, 해당 테이블의 스키마 정보를 별도로 열어서 같이 볼 수 있다.
SQL 튜닝모드
질의 편집기 툴바 > |SQL 튜닝모드| 버튼을 클릭하면, 질의 결과창에 질의 결과 + 질의 실행 계획 + 질의 실행 통계 정보를 동시에 출력한다.
왼쪽 네비게이션 창에서 테이블 또는 뷰를 두번 클릭하면 질의 편집기 하단에 테이블 정보 보기 창이 출력된다. 테이블 정보 보기 창은 다음과 같이 구성된다.
빠른 SQL 입력 버튼
SELECT *, SELECT, INSERT, UPDATE, DELETE 등 해당 테이블과 관련된 SQL을 버튼 클릭으로 질의 편집기에 입력할 수 있으며 적절히 수정하여 질의를 실행할 수 있다. 또한, |정의된 SQL 매개 변수 설정| 버튼을 클릭하여 매개 변수를 설정하여 SQL을 실행할 수 있다.
샘플 데이터 서브 탭
100개의 샘플 데이터와 컬럼명, 자료형, 컬럼 크기 등을 한 눈에 볼 수 있는 UI를 제공한다. SQL 작성시 해당 테이블이 어떠한 데이터를 갖고 있는지 확인하면서 편리하게 작성할 수 있도록 지원한다.
컬럼명, 자료형, 컬럼 크기는 상단 제목 줄에 간략하게 표현되며, 자료형은 CHAR > cha, VARCHAR > var 등으로 최초 3자리만 출력이 되고 컬럼 크기는 1,000 단위는 1k, 1,000,000 단위는 1m 등으로 단축 표현된다.
DDL 탭
테이블 또는 뷰가 어떤 DDL로 생성이 되었는지 확인할 수 있다.
컬럼 탭
테이블 또는 뷰의 컬럼 정보를 상세히 확인하면서 SQL을 작성할 수 있도록 지원한다. 고유키, NOT NULL, 기본값 등을 한 눈에 볼 수 있다.
인덱스 탭
Join 질의 작성시 인덱스와 외래키 등의 정보를 확인할 수 있도록 지원한다.
SQL을 실행하여 성공할 때마다 실행된 일시, SQL, 실행 로그가 자동으로 저장이 되며 프로그램을 종료하더라도 보존이 된다. 최근 사용된 SQL이 항상 최상단에 등록되며 해당 SQL을 더블클릭하면 질의 편집기에 입력이 되어 바로 실행도 가능하다.
왼쪽 상단의 삭제 버튼을 클릭하여 불필요한 로그를 삭제할 수 있으며, SHIFT키로 여러 줄을 선택하여 삭제도 가능하다. 단, 데이터베이스별로 구분되어 저장되며 100개가 초과되면 오래된 SQL 이력은 자동으로 삭제가 된다.