질의 편집기

CUBRID 매니저 질의 편집기는 모든 DML, DDL, DCL 문의 수행을 지원하는 질의 도구로서, 보다 쉽고 편리하게 질의를 편집하고 실행할 수 있다.

질의 편집기를 실행하려면 다음 중 한 가지 방법을 선택한다.

  • 메뉴에서 "도구 > 새 질의 편집기"를 선택한다.
  • 툴바에서 "새 질의 편집기"를 클릭한다.
  • 탐색창의 해당 데이터베이스 이름에 마우스 포인터를 대고 마우스 오른쪽 버튼을 클릭하여 팝업된 메뉴에서 "새 질의 편집기"를 선택한다.

질의 편집기는 다음의 기능을 가지고 있다.

  • 질의 편집기 화면은 위쪽의 질의 편집 창과 아래쪽의 질의 결과 창으로 구분할 수 있다.
  • 질의 편집 창에서는 수행할 질의를 입력하고 편집하며, 질의 편집기에서 주로 사용하는 기능을 아이콘으로 보여주는 툴바가 포함되어 있다.
  • 질의 결과 창에서는 수행된 질의의 결과가 탭 형식으로 출력되며, 수행한 질의의 수행 시간이 출력된다.
  • 질의 편집기 내에 탭을 추가하여 탭 전환만으로 하나의 DB에 여러 SQL을 구분하여 작성하고 실행할 수 있다.
../_images/cm-query-edit.png

질의 입력

질의 입력 시 제공하는 기능들은 다음과 같다.

  • 다중 질의 기능

    질의문;질의문;...

    질의문 마지막에 세미콜론(;)을 입력하여, 하나의 질의가 끝나고 다음 질의가 시작됨을 명시한다. 여러 개의 질의가 존재할 경우, 각 질의는 순차적으로 수행되며, 질의별로 질의 결과 창에 결과 탭이 형성된다. 세미콜론으로 구분하지 않고 다중 질의를 수행하면, 첫 번째 질의만 수행되고 이후의 질의는 무시된다.

  • 질의 취소 기능

    "질의 실행 취소" 버튼 클릭

    수행 중인 질의를 중지시킬 수 있는 기능이다. 질의 수행 중 하단의 "질의 실행 취소" 버튼을 클릭하면 상황에 따라 다음과 같이 동작한다.

    • 다중 질의 수행 시: 자동 커밋이 설정되어 있을 때 다중 질의 수행 시 정지 버튼을 클릭하면, 이전에 처리한 질의들은 정상적으로 반영되고, 취소된 질의와 이후의 질의는 반영되지 않는다. 자동 커밋이 설정되어 있지 않으면, 수행된 모든 질의를 반영하지 않는다.
    • 긴 트랜잭션 수행 시: 정지 호출 시 "CUBRID 매니저 => JDBC => 브로커 => 서버"의 각 단계로 질의 취소 명령이 전달되어 최종적으로 데이터베이스 서버에서 해당 질의가 정지되어야 실제 질의가 취소된다. 단, Windows 버전의 경우, CUBRID R2.2 이상 버전에서만 질의 취소 기능을 지원한다.
  • 키워드 추천 기능

    추천 목록 팝업

    SELECT, UPDATE 등의 키워드와 테이블명을 쉽게 입력할 수 있도록 문자를 입력하면 해당하는 추천 키워드 및 테이블 이름 목록을 보여준다. 또한, 특정 테이블의 SELECT 리스트 후보가 될 수 있는 칼럼 목록을 보여준다. 예를 들어, "SELECT FROM athlete"을 입력한 다음 SELECT에 CTRL+SPACE 키를 누르거나 특정 문자를 입력하면 athlete의 칼럼들과 SQL 함수들을 보여준다.

  • 키워드 추천 SQL 선택 기능

    • "SELECT", "INSERT", "UPDATE" 또는 "DELETE"를 입력한 상태에서 키보드의 오른쪽 커서 키를 누르면 최근 실행된 SQL이 출력된다.
    • 또는 "SELECT ", "INSERT ", "UPDATE " 또는 "DELETE "를 입력한 상태에서 "CTRL + R" 키를 누르면 최근 실행된 SQL이 출력된다.

    이때 엔터 키를 누르면 해당 SQL이 질의 편집기에 입력된다.

  • 키워드 자동 대문자 변환 기능

    질의 편집기에서 SQL 작성시 키워드(예약어) 자동 대문자 변환 기능이 지원된다. 예를 들어, select까지 입력하고 SPACE를 넣으면 select가 자동으로 SELECT로 변환된다. 이 기능을 사용하지 않으려면, "파일 > 기본 설정.. > 질의 편집기 옵션 > 편집중 키워드 자동으로 대문자 만들기 사용하지 않음"을 선택한다.

  • 최근 사용한 SQL 보기

    CTRL + R

    질의 편집기에서 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 실행: 다량의 데이터를 변경하는 경우 사용한다.
  • 질의 다중 실행

    질의 편집기 창의 "질의 다중 실행" 버튼 > 하단에 데이터베이스 추가 > 하단에서 "다중 질의 실행하기" 버튼

    하나의 질의를 여러 대의 데이테베이스에서 다중 실행하고, 하나의 뷰(독립창)에서 결과를 동시 비교할 수 있다.

    자세한 내용은 질의 다중 실행를 참고한다.

  • 줄 바로가기

    질의 편집기에서 CTRL + G

    질의 편집기에 입력된 SQL의 길이가 길 경우 CTRL + G를 누르고 원하는 줄 번호를 입력하면 해당 줄로 커서를 이동한다.

  • 선택한 칼럼들의 별칭을 일괄 편집하기

    SELECT 리스트의 칼럼들을 드래그하여 선택한 후 마우스 우클릭 > 칼럼 명 앞 테이블 별칭 일괄 변경

    여러 개의 칼럼에 동일한 테이블 별칭을 입력하기 위해 대상 칼럼을 선택한 후 마우스 우클릭 메뉴에 있는 "칼럼 명 앞 테이블 별칭 일괄 변경"을 선택하여 원하는 별칭을 추가 또는 이미 있을 경우 교체할 수 있다.

    단, SELECT 리스트의 항목이 함수나 괄호 등으로 시작하는 경우는 아직 지원하지 않는다.

    ../_images/cm-col-alias.png
  • 데이터베이스 용도에 따른 배경색 지정

    데이터베이스 이름을 마우스 우클릭 > 데이터베이스 로그인 정보 편집 > 서버 용도

    "데이터베이스 로그인 정보 편집" 시 데이터베이스의 사용 목적에 따라 배경색을 다르게 지정할 수 있다.

    예를 들어 개발용, 운영용으로 구분하여 데이터베이스를 관리할 때 개발용, 운영용에 대한 구분이 없을 경우 개발 서버에 실행할 질의를 운영 서버에 실행하는 실수를 저지를 수 있는데, 이 기능은 이를 방지하기 위해 질의 편집기 창의 배경색을 다르게 하여 현재 개발 서버에서 질의를 하는지 아니면 운영 서버에서 질의를 하는지를 직관적으로 구분할 수 있다.

  • SQL 파일 실행

    한 개 이상의 SQL 파일을 선택하여 데이터베이스에 입력하는 기능이다. 왼쪽 탐색기 창에서 해당하는 데이터베이스를 오른쪽 클릭으로 메뉴를 열어 SQL 파일 실행을 선택하고 실행할 파일 1개 이상 선택하면 데이터베이스로 파일에 저장된 SQL의 입력을 시작한다.

    • "데이터 내려받기" 기능으로 받은 SQL 파일을 다른 서버에서 실행할 수 있다.
    • SQL 파일 실행 진행창이 출력되고 각 파일별 진행상태를 볼 수 있다. SQL 파일 실행이 끝나면 성공, 실패 결과가 출력되며 해당 항목을 더블클릭하면 실패한 행을 확인할 수 있다.

질의 결과 편집

질의 편집기 하단 > 질의 결과 탭

질의 편집기는 질의 수행 결과를 편집하여 데이터를 추가, 변경 또는 삭제할 수 있는 기능도 제공한다.

이 기능은 실행한 질의 결과를 직접 편집하거나 레코드를 추가할 수 있는 기능이다. 질의 편집기 하단의 결과 창 상단에서 연필 아이콘을 클릭하여 "편집 가능" 상태로 변경하면 질의한 결과에 기본키 칼럼이 모두 포함된 출력 결과에서 데이터의 추가, 변경, 삭제가 가능하다.

Note

기본키가 없는 테이블 또는 SELECT 시 기본키가 모두 포함되지 않은 경우에는 질의 결과를 편집할 수 없다.

  • 데이터 추가: 연필 아이콘을 클릭하고 "+" 아이콘을 클릭하면 마지막 라인에 입력 가능한 빈 줄이 생기며 직접 값을 입력할 수 있다. 날짜의 경우에는 별도 입력창을 이용하여 입력한다. 입력 후, "입력한 데이터 저장" 버튼을 클릭한다, 여러 레코드의 데이터를 입력한 후 한 번에 "입력한 데이터 저장" 버튼을 클릭하면 편리하다.
  • 데이터 변경: 원하는 데이터를 클릭하면 변경할 수 있다.
  • 데이터 삭제: 삭제할 레코드를 선택한 후 "-" 아이콘을 클릭하면 해당 레코드를 삭제할 수 있다.

체크 아이콘("변경한 데이터 저장")을 클릭하면 편집한 데이터가 데이터베이스에 반영된다.

Note

자동 커밋 OFF 시 유의할 점

질의 편집기가 자동 커밋이 아닌 상태에서 트랜잭션이 존재하고 있을 때에는 트랜잭션에 영향을 미칠 혼란을 막기 위해 "체크 아이콘"을 클릭해도 편집한 데이터가 반영되지 않게 되어 있다.

따라서 편집한 결과 데이터를 데이터베이스에 반영하려면 데이터를 편집하기 전에,

  • 앞서 수행한 트랜잭션을 커밋 또는 롤백해야 하며
  • 이후 미리 수행된 질의가 없는 상태에서 SELECT를 수행한 후
  • 결과 데이터 편집을 하고, "체크 아이콘"을 클릭하면 된다.

질의 결과 출력

질의 편집기 하단 > 질의 결과 탭

질의 결과를 출력하는 질의 결과 창은 수행된 질의의 결과를 보여주는 창으로, 여러 개의 질의가 수행된 경우 각각의 결과는 질의 결과 창 아래에 질의별 탭으로 구분되어, 각 탭을 선택하면 해당 질의의 수행 결과를 확인할 수 있다.

또한 질의 결과 창에서 데이터의 편집이 가능한데, 이에 대한 자세한 사항은 질의 결과 편집을 참고한다.

질의 결과 창의 헤더 부분에 있는 칼럼 이름에 마우스 포인터를 올리면 해당 칼럼의 데이터 타입과 크기를 알 수 있다.

질의 결과 창은 "결과 탐색" 영역과, "수행 질의 정보, 수행 시간 및 검색 건수"를 제공하는 영역으로 구분된다.

  • 결과 탐색: 전체 검색 결과에서 "질의 편집기 옵션"의 "결과 창의 페이징 단위 설정"에서 설정한 값만큼 이동하며 탐색한다.
  • 수행 질의 정보, 수행 시간 및 검색 건수: 현재 질의 결과가 어떤 질의를 수행한 결과인지 알려 준다. 또한, 현재 질의 결과를 얻는데 소요된 서버의 수행 시간과 전체 검색 건수 정보를 제공한다.

특정 데이터에 대고 마우스 우클릭하면 다음 메뉴들을 확인할 수 있다.

  • 상세 보기: 행으로 출력되는 데이터가 많거나 클 경우 한 행의 데이터를 상세히 보기 어렵다. 이 때 해당 행을 마우스 오른쪽 버튼 클릭하고 "상세 보기"를 선택하여 한 행의 모든 데이터를 상세히 볼 수 있다.
  • 전체 내보내기: 결과 창의 모든 데이터를 엑셀 또는 CSV 파일로 내보낸다.
  • 선택된 행 내보내기: 결과 창에서 선택한 행의 데이터만 엑셀 또는 CSV 파일로 내보낸다. 내보낸 데이터가 저장되는 파일의 문자 집합을 설정할 수 있다.

질의 실행 계획

질의 편집기 하단 > 질의 실행 계획 탭

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

하지만 먼저 질의를 작성하고 "질의 실행 계획" 창의 상단 툴바에서 "질의 실행 계획 보기"를 클릭해야 결과 창의 "질의 실행 계획" 탭에 질의 수행 계획이 출력된다. "질의 실행 계획" 탭은 해당 질의에 대한 실행 계획을 트리 구조로 요약하여 보여준다.

../_images/cm-query-plan.png

질의 실행 계획 이력은 "질의 실행 계획" 창의 상단 툴바 우측의 "수집 이력 안 남기기" 버튼을 끄면 자동으로 보존되며 100개 초과시 이전 이력은 자동으로 삭제가 된다. 프로그램을 종료하더라도 이력이 보존되어 있기 때문에 재실행 시 확인이 가능하다.

질의 실행 계획 툴바

질의 실행 계획 상단 좌측의 툴바에는 출력 형식을 선택할 수 있다.

  • 원본 출력: 텍스트 형식으로 출력한다.
  • 트리 출력: 트리 형식으로 출력한다.
  • 그래픽 출력: 그래픽 형식으로 출력한다.

질의 실행 계획 창 안에서 상단 우측의 툴바에는 다음과 같은 기능이 있다.

  • 수집 이력창 출력/숨김: 오른쪽의 수집 이력 창을 보거나 숨길 수 있다.
  • 수집 이력 안 남기기: 질의 실행 계획을 이력에 남기지 않고 임시로 조회하려면 "수집 이력 안 남기기"를 켜는데, 이 기능은 질의 편집기 창을 처음 열었을 때는 켜져 있다. 이 옵션을 켜고 질의 편집기에서 "질의 실행 계획 보기"를 이용하여 실행 계획을 조회하면 실행 계획 이력 창에 이력이 추가된다.
  • 실행 계획 삭제: 수집 이력창에 출력된 이력 중 삭제할 것을 하나 선택한 후 이 버튼을 누르면 선택한 이력이 삭제된다.

질의 실행 계획 출력

원본 출력

CSQL에서 질의 실행 계획이 출력될 때와 같은 텍스트가 그대로 출력된다.

트리 출력

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

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

가로축은 항목(item)이라고 부르며 유형, 테이블, 인덱스, 검색조건, 비용, 카디널리티, 전체(ROW/PAGE)로 구분된다.

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

트리 출력 창에서 테이블이 있는 행을 클릭하면 해당 테이블의 스키마, 인덱스 정보를 좌측 하단 창에서 확인할 수 있다.

그래픽 출력

그래픽 출력 창에는 노드 간의 관계를 선으로 연결하여 출력하며, 각 노드의 상단에 마우스 화살표를 올려 놓으면 추가 정보가 팝업된다.

../_images/cm-plan-graph-3.png

수집 이력창

질의 실행 계획 창 안 상단 우측 > 수집 이력창 출력/숨김 버튼(화살표 아이콘 버튼)

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

질의 실행 계획 활용

질의 편집기에 질의 입력 > 질의 실행 계획 버튼 클릭 > 질의 실행 계획 탭 > 트리 출력 창 > 테이블이 있는 행 클릭

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

질의 실행 계획 출력 창에서 테이블이 있는 행을 클릭하여 "스키마 정보 보기"를 선택하면, 해당 테이블의 스키마 정보를 좌측에서 같이 볼 수 있다.

SQL 튜닝모드

질의 편집기 툴바 > SQL 튜닝모드 버튼(격자 사각형 위에 돋보기가 있는 아이콘)

"질의 편집기 툴바 > SQL 튜닝모드" 버튼을 클릭하고 질의를 실행하면, 별도의 질의 결과 창이 팝업된다.

이후 팝업된 창에서 "오른쪽에 출력" 체크 박스를 체크한 후 질의 편집기에서 또 다른 질의를 입력하여 실행하면, "튜닝 모드" 팝업 창 우측에 방금 실행한 질의의 실행 계획이 출력된다.

이를 통해 두 개의 서로 다른 질의에 대한 실행 계획을 한 화면에서 비교해 볼 수 있다.

../_images/cm-tuning.png

SQL 실행 이력

질의 편집기 하단 > SQL 실행 이력 탭

SQL을 실행하여 성공할 때마다 실행된 일시, SQL, 실행 로그가 자동으로 저장이 되며 프로그램을 종료하더라도 보존이 된다. 최근 사용된 SQL이 항상 최상단에 등록되며 해당 SQL을 더블클릭하면 질의 편집기에 입력이 되어 바로 실행도 가능하다.

결과 창 왼쪽 상단의 "SQL 이력 삭제" 버튼을 클릭하여 불필요한 로그를 삭제할 수 있으며, 시프트(shift) 키를 누른 채로 여러 줄을 선택하여 삭제하는 것도 가능하다. 단, SQL 실행 이력은 데이터베이스별로 구분되어 저장되며 실행된 SQL이 100개를 초과하면 오래된 SQL 이력은 자동으로 삭제된다.

질의 다중 실행

질의 편집기 하단 > 질의 다중 실행 탭

하나의 질의를 여러 대의 데이테베이스에서 다중 실행하고, 하나의 뷰(독립창)에서 결과를 동시 비교할 수 있다.

  • 여러 대의 데이터베이스에 반복 작업(사용자 추가, 스키마/인덱스 변경 작업)을 수행할 때 유용하다.
  • HA/복제 환경에서 SELECT문을 실행하면서 결과 비교를 할 때 유용하다.

단, SELECT문을 다중 실행하는 경우, 클라이언트가 DB로부터 가져오기(fetch)하는 결과셋 크기 및 로컬 시스템의 메모리 사양에 따라 "out of memory" 에러가 발생할 수 있다.

테이블/뷰 정보 보기

테이블 요약 정보 보기

왼쪽 탐색기 창에서 "테이블" 노드를 더블클릭하면 오른쪽에 모든 테이블의 요약 정보가 표시된다.

요약 정보에는 테이블 이름, 테이블 설명, 레코드 개수, 칼럼 개수, 기본 키(primary key, PK) 여부, 고유 키(unique key, UK) 여부, 외래 키(foreign key, FK) 여부, 인덱스 개수, 레코드 크기 등이 포함된다.

요약 정보 창의 특정 테이블을 더블클릭하면 하단에 해당 테이블의 스키마 정보가 출력된다.

또한, 요약 정보 창 상단의 툴바에는 새로 고침 버튼, Count(*) 버튼, Select * 버튼, Copy <T> 버튼(모든 테이블 이름을 클립보드에 저장), Copy <C> 버튼(선택한 테이블의 모든 칼럼 이름을 클립보드에 저장), 테이블 추가 버튼이 있다.

왼쪽 탐색기 창에서 "테이블" 노드를 펼쳐서 특정 테이블 이름을 더블클릭하면 왼쪽 하단에는 해당 테이블의 칼럼 정보가, 오른쪽 하단에는 해당 테이블의 레코드 100개가 출력된다.

뷰 요약 정보 보기

왼쪽 탐색기 창에서 "뷰" 노드를 더블클릭하면 오른쪽에 모든 뷰의 요약 정보가 표시된다.

요약 정보에는 뷰 이름, 질의 명세, 소유자 등이 포함된다.

요약 정보 창의 특정 뷰를 더블클릭하면 하단에 해당 뷰의 스키마 정보가 출력된다.

또한, 요약 정보 창 상단의 툴바에는 새로 고침 버튼, 뷰 추가 버튼, 뷰 편집 버튼, 뷰 삭제 버튼이 있다.

왼쪽 탐색기 창에서 "뷰" 노드를 펼쳐서 특정 뷰 이름을 더블클릭하면 왼쪽 하단에는 해당 뷰의 칼럼 정보가, 오른쪽 하단에는 해당 뷰의 레코드 100개가 출력된다.

왼쪽 탐색기 창 하단 > 칼럼 탭

테이블 또는 뷰의 칼럼 정보를 상세히 확인하면서 SQL을 작성할 수 있도록 지원한다. 고유키, NOT NULL, 기본값 등을 한 눈에 볼 수 있다.

왼쪽 탐색기 창 하단 > 인덱스 탭

Join 질의 작성시 인덱스와 외래키 등의 정보를 확인할 수 있도록 지원한다.

왼쪽 탐색기 창 하단 > DDL 탭

테이블 또는 뷰가 어떤 DDL로 생성이 되었는지 확인할 수 있다.

질의 자동화

왼쪽 탐색기 창에서 데이터베이스 이름 펼친 후 하단 > 작업 자동화 > 질의 자동화

CUBRID 매니저 서버를 통해서 주기적으로 질의를 수행하고자 하는 경우 질의 자동화 기능을 사용하는데, "질의 자동화 추가" 메뉴에서 관련 정보를 설정할 수 있다. 질의 자동화 기능은 매니저 서버가 구동 중인 상태에서 dba 사용자가 설정할 수 있으며, 해당 데이터베이스의 구동/중지 상태와는 무관하다. 매니저 서버가 구동 중인 상태에서만 설정된 정보에 따라 질의 작업이 자동으로 수행된다.

  • 질의 ID: 질의 작업의 이름을 설정한다. 질의 작업이 여러 개일 수 있으므로, 하나의 데이터베이스 내에서는 유일해야 한다.
  • 사용자 이름/비밀번호: 등록한 질의를 자동으로 수행할 데이터베이스 사용자 정보를 비밀번호와 함께 입력한다. 사용자 정보가 틀리면 해당 질의를 자동으로 수행할 수 없으므로, 사용자 비밀번호가 변경되는 경우 "질의 자동화 편집" 메뉴에서 기존의 사용자 정보를 변경해야 한다.
  • 실행 주기: 질의를 자동 실행할 주기를 매월, 매주, 매일, 특정일 중에서 선택할 수 있다.
  • 상세 주기: 선택한 실행 주기를 상세하게 설정할 수 있다.
  • 실행 시간: 질의를 자동 실행할 시간을 입력한다. 시간과 분을 각각 입력한다.
  • 질의 구문: 자동 실행할 질의문을 입력한다. 등록된 질의문은 설정된 시간마다 주기적으로 자동 실행되지만, 실행 결과는 기록되지 않음을 유의한다. 자동 실행되는 질의의 결과는 기록되지 않으므로, 위 그림처럼 SELECT 문을 자동 실행하는 것은 아무 의미가 없다. 그러나, 통계 정보 갱신(UPDATE STATISTICS), 데이터 갱신 또는 삭제를 주기적으로 수행하고자 하면 질의 자동화 기능이 유용하다. 자동 실행한 질의에 대한 로그는 $CUBRID/log/manager/auto_execquery.log 파일에 기록된다.
  • 질의 검사: 자동 실행할 질의문을 등록하기 전에 해당 질의의 오류를 미리 검사할 수 있는 기능이다. 해당 질의를 실제 수행하지는 않고, 질의 실행 계획을 생성하여 오류를 판단한다. csql 인터프리터에서 optimization level 514 모드로 수행하는 것과 동일하다.

Note

  • 이 기능은 CUBRID 매니저 서버를 통해서 구동되므로 매니저 서버가 내려간 경우 동작할 수 없다는 점에 주의한다. Linux OS 사용자라면 이 기능보다는 crontab 명령을 통해 직접 백업 명령을 주기적으로 설정하도록 해야 매니저 서버에 대한 의존성을 없앨 수 있다.
  • 이 기능은 HA 환경을 고려하지 않고 구현했으므로 HA 환경에서는 이 기능을 사용하지 않을 것을 권장한다.

질의 자동화 수행 로그

왼쪽 탐색기 창의 데이터베이스 이름 클릭 > 작업 자동화 > 질의 자동화 메뉴에 대고 마우스 우클릭 > 질의 자동화 수행 로그

이 로그에는 대상 데이터베이스, 매니저 사용자 ID, 질의 ID, 질의 수행 시간, 에러 코드(성공:0, 실패:-1) 등의 정보가 기록된다.