본문 바로가기
IT/서버 이관시 고려해야 할 DB 성능 튜닝

Phase 1-2.실행 계획(Explain Plan) 분석 - 개선 포인트 도출

by free-inf 2025. 2. 5.

1. 작업 개요

본 작업은 서버 이관 작업 전, 이관 대상 시스템에서 사용되는 SQL 문의 실행 계획을 정밀하게 분석하는 것을 목적으로 합니다. 이를 통해 각 쿼리가 데이터베이스에서 실제로 어떻게 실행되는지, 옵티마이저가 어떠한 실행 경로를 선택하는지, 그리고 인덱스 활용 여부 및 풀 스캔 발생 여부 등을 확인합니다. 분석 결과는 Oracle SPA(SQL Performance Analyzer)와 AWR(Automatic Workload Repository) 리포트를 통해 수집되며, 향후 이관 후 튜닝 및 성능 개선 작업의 중요한 기초 자료로 활용됩니다.


2. 작업 목적

  • 실행 경로 파악:
    각 SQL 문의 실행 계획을 면밀하게 분석하여, 옵티마이저가 선택한 실행 경로를 파악합니다. 이를 통해 불필요한 풀 스캔, 인덱스 미사용, 조인 방식의 비효율 등 성능 저하 요인을 식별할 수 있습니다.
  • 병목 현상 도출:
    실행 계획 분석을 통해 특정 쿼리나 연산이 시스템 리소스를 과도하게 소모하는지, 병목 현상이 발생하는 지점을 도출합니다.
  • 튜닝 개선 포인트 마련:
    분석 결과를 기반으로 인덱스 재설계, 힌트 적용, 조인 방식 변경 등 구체적인 튜닝 개선 사항을 도출하여, 이관 후 성능 최적화 작업의 우선순위를 결정합니다.

3. 세부 절차 및 도구 활용 방안

(1) 초기 환경 및 도구 준비

  • 도구 설치 및 환경 설정:
    Oracle SPA 및 AWR 리포트를 활용할 수 있도록 관련 도구의 최신 버전을 설치하고, 데이터베이스 접속 환경을 구성합니다.
  • 기본 성능 수치 확보:
    작업 시작 전, 기존 시스템의 기본 성능 수치를 AWR 리포트를 통해 확보하여, 향후 변경 전후 비교 기준으로 활용합니다.

(2) 실행 계획 수집

  • SQL 문의 식별:
    이관 대상 시스템에서 사용되는 주요 SQL 문(데이터 추출, 로딩, 검증 쿼리 등)을 식별하고, 각각의 SQL 문에 대해 실행 계획을 수집합니다.
  • Oracle SPA 활용:
    SPA를 이용하여 각 SQL 문의 실행 계획을 자동으로 수집하고, 실행 계획 내의 각 연산(예: 인덱스 스캔, 풀 스캔, 조인 방식 등)의 상세 정보를 기록합니다.

(3) 실행 계획 분석

  • 세부 분석:
    수집된 실행 계획을 검토하여, 옵티마이저가 선택한 실행 경로를 이해합니다. 특히, 불필요한 풀 스캔이나 인덱스 미사용 사례를 집중적으로 분석합니다.
  • AWR 리포트 연계:
    AWR 리포트를 활용하여 시스템 전체의 리소스 사용 현황 및 특정 SQL 문의 실행 빈도, CPU 및 I/O 비용 등을 분석하고, 실행 계획과 비교합니다.
  • 문제점 도출:
    분석 결과를 바탕으로 병목 구간, 인덱스 부적절 사용, 조인 순서 문제 등 개선이 필요한 부분을 구체적으로 도출합니다.

(4) 개선 포인트 도출 및 우선순위 결정

  • 개선 사항 정리:
    각 SQL 문별로 도출된 문제점을 목록화하고, 인덱스 재설계, 힌트 적용, 조인 방식 변경 등 구체적인 개선 포인트를 정리합니다.
  • 우선순위 산정:
    쿼리의 실행 빈도, 리소스 소모 정도, 시스템 전반에 미치는 영향 등을 고려하여, 튜닝 작업의 우선순위를 산정합니다.

(5) 결과 문서화 및 공유

  • 보고서 작성:
    분석 결과와 개선 포인트를 포함한 상세 실행 계획 분석 보고서를 작성합니다. 보고서에는 각 SQL 문의 실행 계획, AWR 리포트 요약, 개선 권고 사항 등을 포함합니다.
  • 내부 리뷰:
    작성된 보고서를 DBA 팀 및 관련 부서와 공유하여, 추가 의견을 수렴하고 최종 개선 방향을 확정합니다.
  • 문서 관리:
    최종 보고서는 내부 문서 관리 시스템(OEM 포함)에 저장하여, 이관 후 성능 비교 및 후속 튜닝 작업에 참고자료로 활용합니다.

4. 일정 및 검증 계획

  • 일정:
    1. 도구 설치 및 기본 성능 수치 확보: 1일
    2. SQL 문 식별 및 실행 계획 수집: 2일
    3. 실행 계획 세부 분석 및 AWR 연계 분석: 2일
    4. 개선 포인트 도출 및 우선순위 결정: 1일
    5. 결과 보고서 작성 및 내부 리뷰: 1일
      → 총 소요 기간: 약 7일 (시스템 규모 및 복잡도에 따라 조정)
  • 검증 계획:
    • 수집된 실행 계획이 AWR 리포트의 리소스 사용 현황과 일치하는지 비교 검증합니다.
    • 주요 쿼리에 대해 도출된 개선 사항을 시범적으로 적용한 후, SPA를 통해 변경 전후의 성능 차이를 재검증합니다.
    • 내부 리뷰 회의를 통해 문서의 완성도와 분석 결과의 신뢰성을 확인합니다.

5. 예상 위험 요소 및 대응 방안

  • 위험 요소:
    • 일부 SQL 문이 로그나 스크립트에서 누락될 우려가 있으며, 도구의 자동 수집 기능이 모든 쿼리를 완벽하게 반영하지 못할 수 있습니다.
    • 실행 계획 분석 시, 데이터베이스 환경 변화로 인해 측정된 성능 지표에 오차가 발생할 가능성이 있습니다.
  • 대응 방안:
    • 자동화 도구와 수동 검토를 병행하여 누락되는 SQL 문이 없는지 철저하게 확인합니다.
    • 여러 차례 반복 측정을 통해 신뢰성 있는 데이터 수집을 실시하고, 이상 징후 발생 시 즉각 재분석합니다.

6. 결론

본 작업 계획서는 서버 이관 프로젝트의 성공적인 진행을 위해 실행 계획(Explain Plan) 분석 작업을 체계적으로 수행하는 방법을 상세히 제시하고 있습니다. Oracle SPA와 AWR을 활용하여 각 SQL 문의 실행 계획을 수집·분석하고, 이를 바탕으로 병목 현상이나 불필요한 풀 스캔 등의 문제점을 도출함으로써, 향후 이관 후 튜닝 작업의 중요한 기초 자료로 활용하고자 합니다.
이와 같은 체계적인 실행 계획 분석은 서버 이관 과정에서 발생할 수 있는 성능 문제를 사전에 예방하고, 안정적인 데이터베이스 운영을 위해 반드시 필요한 과정입니다. 각 단계별로 철저하게 수행된 작업 결과는 내부 문서화되어, 향후 유사 프로젝트 진행 시에도 소중한 참고자료로 활용될 것입니다.

이 계획서를 기반으로 진행된 작업은, 전체 이관 프로젝트의 성공적인 마무리와 안정적인 운영 환경 구축에 크게 기여할 것으로 기대됩니다.