본문으로 건너뛰기

SQL Plan 분석

홈 화면 > 프로젝트 선택 > 분석 > SQL Plan 분석

데이터베이스에서 실행되는 SQL 문을 분석하여 성능 문제를 진단할 수 있는 유용한 자료를 제공합니다.
SQL Plan 분석Access Statistics 탭과 Plan Change History 탭으로 구성되어 있습니다.

Access Statistics

Access Statistics 탭에서 SQL별 Full Scan 발생 시점, 유형, 횟수를 확인할 수 있습니다. 자주 Full Scan이 발생하는 쿼리는 인덱스를 사용하도록 수정해 성능을 개선하고, 자원 사용량을 줄일 수 있습니다.

  1. 분석 > SQL Plan 분석Access Statistics 탭으로 이동합니다.

  2. 조회 시간 및 인스턴스를 선택하세요.

  3. 시간인스턴스 옵션을 설정하고 검색 아이콘 버튼을 클릭하세요. 필요한 경우 필터 옵션을 설정해 원하는 조회 결과를 필터링할 수 있습니다.

  4. Access CountOperation Count 섹션에서 검색 결과를 확인합니다.

    • Access Count: 시간대별 Full Scan 발생 횟수를 확인할 수 있는 막대 그래프 차트입니다. 특정 시간대를 선택하면, 선택한 시간에 수행된 SQL 목록이 화면 아래 목록과 오른쪽 Operation Count 차트에 표시됩니다.

    • Operation Count: Full Scan이 발생한 유형과 그 수를 확인할 수 있습니다. 각 막대에 마우스를 오버하면 오브젝트 이름을 확인할 수 있습니다.

      Operation Count

SQL 상세 정보 확인하기

SQL 목록에서 query 컬럼 항목을 선택하면 SQL 상세 창이 나타납니다. SQL 쿼리문과 Plan 정보를 확인할 수 있습니다.

SQL 통계 보기 버튼을 클릭하면 해당 SQL 쿼리문과 관련한 통계 정보를 확인할 수 있는 SQL 통계로 이동할 수 있습니다.

SQL 상세

  • Runtime Plan: 선택된 SQL 쿼리의 실행 계획과 런타임 정보를 제공합니다. 실행 횟수, 평균 실행 시간, 평균 물리적 읽기 등 세부 정보를 제공합니다.

  • Explain Plan: 옵티마이저가 예측한 실행 계획을 보여줍니다. 비용, 작업, 객체 이름, 카디널리티 등의 정보를 제공합니다.

  • Plan History: 데이터베이스에서 실행된 SQL 쿼리의 실행 계획에 대한 이력을 확인할 수 있습니다.

  • Bind Capture: 데이터베이스에서 실행된 SQL 쿼리에 사용된 바인드 변수의 값을 확인할 수 있습니다. 이를 통해 쿼리 실행의 실제 내용을 확인할 수 있습니다.

    노트

    실시간 실행된 bind 값이 아닌 데이터베이스에 캡처된 값(v$sql_bind_capture)입니다. 건수가 많으면 100개까지 표시합니다.

AI 튜닝 가이드

AI 튜닝 가이드는 SQL 쿼리, Plan, 통계 정보를 분석하여 성능 문제를 진단하고, 최적화 방안을 제시하는 기능입니다. 개발자와 DBA가 병목 원인을 빠르게 파악하고, 효율적인 SQL로 성능을 개선할 수 있도록 지원합니다.

주의

사용 조건 및 유의 사항

PostgreSQL, MySQL, SQL Server는 Plan 조회가 필수입니다.
Plan을 조회하지 않으면 AI 튜닝 가이드 아이콘이 비활성 AI 튜닝 가이드 아이콘(비활성화) 상태로 표시되며, 기능을 사용할 수 없습니다.

  • AI가 생성하는 결과는 자동 분석에 기반하며, 정확도가 100%는 아님을 유의하시기 바랍니다.
  1. 분석 및 진단할 SQL을 클릭해 SQL 상세 화면으로 이동합니다.

  2. SQL 상세 화면의 오른쪽 아래 AI 튜닝 가이드 아이콘 AI 튜닝 가이드 아이콘을 클릭해 AI 분석을 시작합니다.

  3. AI 분석 결과를 확인합니다.

    결과 항목설명
    쿼리 플랜 및 요약쿼리의 목적과 실행 요약
    - 실행 횟수, 누적 실행 시간, 데이터베이스 전체 부하 비중을 분석해 해당 SQL이 시스템 성능에 미치는 영향 평가
    성능 분석분석 결과를 종합해 성능 점수와 진단 결과 제공
    - CPU 사용률, 디스크 사용률, 캐시 적중률, 대기 시간 등 쿼리 수행 과정의 세부 리소스 사용량을 분석해 병목이 발생한 구간을 시각적으로 보여줌
    발견된 주요 이슈주요 이슈 요약 제공
    최적화 권장 사항이슈에 따른 최적화된 쿼리 제안

조회 결과 필터링하기

조회 결과를 다음 기준으로 필터링할 수 있습니다.

  • Access Type: Full Scan 또는 Index Scan 기준으로 결과 필터링

  • Object Name: 오브젝트 이름 기준으로 필터링

Access Type 필터 조건 추가하기

  1. 화면 상단의 필터 옵션에서 버튼을 클릭하세요.

  2. 필터 수정하기에서 Access Type 항목과 일치 조건을 선택하고, FULL 또는 INDEX 항목을 선택하세요.

  3. 적용 버튼을 클릭하세요.

  4. 선택한 조건을 SQL 목록에 반영하려면 검색 아이콘 버튼을 클릭하세요.

노트

Full Scan, Index Scan을 모두 검색하려면 필터 수정하기에서 FULL, INDEX 옵션을 모두 선택하세요. 더하기 아이콘 버튼을 선택해 필터 옵션을 추가할 수도 있습니다.

Object Name 필터 조건 추가하기

  1. 화면 상단의 필터 옵션에서 버튼을 클릭하세요.

  2. 필터 추가하기에서 Object Name 항목과 일치 조건을 선택하세요.

  3. 빈 입력란을 클릭해 표시되는 오브젝트 목록에서 원하는 오브젝트 이름을 선택하세요.

  4. 적용 버튼을 클릭하세요.

  5. 선택한 조건을 SQL 목록에 반영하려면 검색 아이콘 버튼을 클릭하세요.

노트

필터 조건 추가 및 삭제

  • 필터링 조건을 추가하려면 추가 버튼을 클릭하고 1 ~ 5의 과정을 반복하세요. 추가한 조건은 AND(&&) 조건으로 적용됩니다.

  • 조건 추가 중 일부 항목을 삭제하려면 필터 조건 오른쪽에 삭제 아이콘 버튼을 클릭하세요. 전체 조건을 삭제하려면 삭제 아이콘 전체 삭제 버튼 클릭하세요.

  • 필터 옵션에 적용된 조건을 빠르게 삭제하려면 버튼을 클릭하세요.

필터 조건 수정하기

  1. 화면 상단 필터 옵션에 적용된 항목을 클릭하세요.

  2. 필터 수정하기 창에서 원하는 항목을 수정한 후, 적용 버튼을 클릭하세요.

Plan Change History

Plan Change History 탭에서 동일한 SQL ID라도 실행 계획이 변경되면 성능에 영향을 줄 수 있습니다. 옵티마이저에 의해 플랜이 바뀐 경우를 감지하고 모니터링하여, 불필요한 변경을 막고 SQL 성능의 일관성을 유지할 수 있습니다.

  1. 분석 > SQL Plan 분석Plan Change Historys 탭으로 이동합니다.

  2. 조회 시간 및 인스턴스를 선택하세요.

  3. 시간인스턴스 옵션을 설정하고 검색 아이콘 버튼을 선택하세요.

  4. Plan Change Count 섹션에서 특정 시간대를 선택하면, 선택한 시간의 플랜 변경 목록을 표시합니다.

    • Plan Change Count 섹션: 시간대별 플랜 변경이 일어난 횟수를 확인할 수 있는 막대 그래프 차트

Plan 변경 사항 확인하기

  1. SQL Plan 분석Plan Change Historys 탭의 목록에서 특정 변경 항목을 클릭합니다.

  2. Query 섹션에서 플랜 변경 전과 후의 세부 내용이 표시됩니다. 플랜 차이를 비교해 성능 변화의 원인을 파악할 수 있습니다.

    • Query 섹션에서 오른쪽 상단의 새창보기 아이콘 버튼을 클릭하면 해당 섹션을 새창에서 확인할 수 있습니다.
  3. Query 섹션을 닫으려면 오른쪽 상단의 닫기 아이콘 버튼을 클릭하세요.

조회 결과 필터링하기

조회 결과를 다음 기준으로 필터링할 수 있습니다.

  • sql_id

  • sql_hash_value

  • after_plan_hash_value

  • before_plan_hash_value

필터 조건 추가하기

  1. 필터 옵션에서 버튼을 클릭하세요.

  2. 필터 키 항목에서 원하는 필터링 기준을 선택하세요.

    • 선택한 항목의 값이 문자에 해당한다면 포함(파란색), 미포함(빨간색) 조건을 선택할 수 있습니다.

      example

    • 선택한 항목의 값이 숫자에 해당한다면 ==(같음), >=(보다 크거나 같음), <=(보다 작거나 같음) 조건을 선택할 수 있습니다.

  3. 조건 항목에서 조건을 선택하세요.

  4. 조건과 일치시킬 문자열 또는 숫자를 입력하세요.

  5. 적용 버튼을 선택하세요.

노트

필터 조건 추가 및 삭제

  • 필터링 조건을 추가하려면 추가 버튼을 클릭하고, 1 ~ 5의 과정을 반복하세요. 추가한 조건은 AND(&&) 조건으로 적용됩니다.

  • 조건 추가 중 일부 항목을 삭제하려면 필터 조건 오른쪽에 삭제 아이콘 버튼을 클릭하세요. 전체 조건을 삭제하려면 삭제 아이콘 전체 삭제 버튼을 클릭하세요.

  • 필터 옵션에 적용된 조건을 빠르게 삭제하려면 버튼을 클릭하세요.

필터 조건 수정하기

  1. 화면 상단 필터 옵션에 적용된 항목을 클릭하세요.

  2. 필터 수정하기 창에서 원하는 항목을 수정한 후, 적용 버튼을 클릭하세요.