Skip to Content
사용자 매뉴얼WorkflowSQL Request 요청하기실행 계획(Explain) 기능 사용하기

실행 계획(Explain) 기능 사용하기

10.2.0 부터 추가된 기능입니다. (10.2.0 기준 MySQL만 지원합니다.) 11.2.0 부터 관리자가 이 기능을 비활성화 할 수 있도록 변경되었습니다. 사용자가 이 기능을 사용할 수 없는 경우 관리자가 정책적으로 비활성화한 것입니다.

Overview

사용자가 Workflow를 통해 SQL Request를 요청할 때 해당 쿼리에 대해 DBMS에서 제공하는 실행 계획(Explain 구문)을 사용하여 쿼리에 대한 제한적인 절차 정보를 확인할 수 있습니다. 이 기능은 DBMS에 종속된 기능이므로 Workflow의 SQL Request 작성할 때 커넥션에 해당하는 DBMS 마다 차이가 있을 수 있습니다.

실행계획이란?
데이터베이스의 옵티마이저가 가장 최적의 쿼리를 수행하기 위해 생성하는 일련의 작업세트 또는 작업 절차입니다. 단계적으로 수행 단계를 볼 수 있고 단계별 비용을 볼 수 있습니다.

SQL Request 작성 및 실행계획(Explain) 수행하기

QueryPie Workflow에서 SQL Request를 작성하는 기본 방법은 동일합니다. (참고 : SQL Request 요청하기)

  1. MySQL Connection 및 Database 선택
    쿼리를 실행할 MySQL Connection 과 Database를 선택하고 쿼리를 입력합니다.

Content Type은 “Text”만 지원합니다. “File”을 선택하면 실행 계획(Explain)기능을 사용할 수 없습니다.

image-20241029-234721.png
  1. 실행계획(Explain) 옵션 및 실행계획 수행
    쿼리 에디터 하단에 있는 옵션을 선택하고 Explain 버튼을 누릅니다.
    1. Attach Explain Results : 실행계획의 결과를 SQL Request 에 첨부 여부를 선택하는 스위치입니다. (기본값은 OFF 입니다. 필요한 경우 스위치를 ON으로 전환하여 실행 계획 결과를 첨부해야 합니다.)
    2. 결과 표시 방식 선택
      1. Table : 테이블 형태로 결과가 표시됩니다.
      2. JSON : JSON 형태로 결과가 표시됩니다.
image-20241029-235845.png
  • 실행계획 대상이 되는 쿼리(세미콜론으로 끝나는 구문)는 100개로 제한됩니다.
  • MySQL은 5.6 이후 부터 Explain의 결과를 JSON 포맷으로 출력할 수 있습니다. 따라서 5.6 이전 버전을 대상으로 Explain을 수행시 JSON으로 출력할 수 없습니다.
image-20241030-001252.png
  1. 실행계획(Explain) 결과 확인
    1. Table 형태의 결과 확인
      아래 그림과 같은 결과가 표시됩니다. 각 필드의 의미는 MySQL reference 문서를 참고하시기 바랍니다.

    image-20241030-002325.png
    1. JSON 형태의 결과 확인
      JSON 을 선택하고 Explain 버튼을 누르면 아래 그림과 같은 결과가 표시됩니다. {JSON} 을 클릭하면 전체 JSON 내용을 확인할 수 있습니다.




      내보내기(Export)를 할 때 관리자 설정에 따라 암호 입력을 요구하는 팝업이 출력될 수 있습니다.
    `{JSON}`을 클릭하면 전체 내용을 볼수 있습니다.

    {JSON}을 클릭하면 전체 내용을 볼수 있습니다.

    JSON 결과의 복사와 내보내기가 가능합니다.

    JSON 결과의 복사와 내보내기가 가능합니다.

기타 참고사항

  1. 결재자(Approver)의 실행계획(Explain)결과 확인
    결재자는 Explain Results 탭에서 첨부된 실행계획(Explain)결과를 확인하고 승인의 참고자료로 활용할 수 있습니다.
image-20241030-004258.png

결재자가 볼 수 있는 실행계획(Explain) 결과는 상신자가 실행계획을 수행할 때 선택한 포맷으로만 볼 수 있습니다. 즉, 상신자가 실행계획을 JSON 형태로 출력하도록 하고 첨부하여 상신했다면 결재자는 JSON 형태의 결과만 볼 수 있고 출력 형태를 테이블로 바꿀 수 없습니다.

  1. MySQL에서 실행계획(Explain)을 통해 검토 가능한 구문
    MySQL은 버전별로 실행계획을 통해 분석하는 지원 구문이 다릅니다.
MySQL 5.6.3 이전MySQL 5.6.3 이후
SELECTSELECT , DELETE , INSERT , REPLACE , UPDATE

optimizer_trace, analyze 는 SQL Request 에서 제공하는 실행계획(Explain) 수행 기능에서 지원하지 않습니다.

Last updated on