Oracle SPA(SQL Performance Analyzer)는 Oracle 데이터베이스 환경에서 SQL 성능 분석 및 튜닝 개선을 위한 핵심 도구로, SQL 문의 실행 계획, 응답 시간, CPU 및 I/O 사용량 등 주요 성능 지표를 정밀하게 수집·분석합니다.
이 도구를 통해 DBA와 튜닝 담당자는 각 SQL 문의 실행 경로를 면밀히 파악하고, 비효율적인 실행 경로나 불필요한 풀 테이블 스캔, 인덱스 미사용 등의 문제를 사전에 식별할 수 있습니다. 이를 바탕으로 서버 이관, 업그레이드, 그리고 정기 성능 점검 시 변경 전후의 성능 차이를 정량적으로 비교하고, 튜닝 개선의 효과를 검증할 수 있습니다.
Oracle SPA는 주로 다음과 같은 역할을 수행합니다.
- 변경 전후 성능 비교
SPA를 사용하면 데이터베이스 이관이나 업그레이드 작업 전에 기준 성능 데이터를 확보할 수 있습니다. 이후 튜닝 작업 후 동일 SQL 문의 실행 계획과 성능 지표를 비교 분석하여, 적용된 개선 작업이 실제로 성능 향상에 기여했는지 정량적으로 평가할 수 있습니다. - 실행 계획 분석
SPA는 SQL 문의 실행 계획을 상세하게 수집합니다. 이를 통해 옵티마이저가 선택한 실행 경로를 분석하고, 인덱스 사용 여부, 조인 방식, 풀 테이블 스캔 등의 정보를 파악할 수 있습니다. 이러한 분석은 성능 병목 현상을 조기에 식별하고, 적절한 튜닝 포인트를 도출하는 데 핵심적인 역할을 합니다. - 튜닝 개선 효과 검증
힌트 적용, 인덱스 재설계, 조인 방식 변경 등 튜닝 개선 작업을 수행한 후, SPA를 활용하여 변경 전후의 성능 지표를 비교 분석합니다. 이를 통해 개선 효과를 수치로 확인하고, 추가 튜닝이 필요한 부분을 도출할 수 있습니다.
Oracle SPA를 효과적으로 사용하기 위해서는 몇 가지 추가 조치가 필요합니다. 우선, SPA를 실행하기 전에 데이터베이스에 충분한 권한이 부여되어 있어야 하며, 최신 버전의 SPA 소프트웨어가 설치되어 있어야 합니다. 또한, SPA는 AWR(Automatic Workload Repository)과 연계하여 사용되므로, AWR 스냅샷 주기 및 보관 정책을 적절히 설정하여 현재 시스템의 성능 상태를 사전에 기록하는 것이 중요합니다. 이와 같이 확보된 기준 성능 데이터는 변경 전후의 비교 분석에 있어 결정적인 역할을 합니다.
실제 운영 환경에서 SPA를 사용하기 전에는 테스트 환경에서 충분한 사전 검증을 진행하는 것이 바람직합니다. DBA는 SQL Developer나 자체 제작한 스크립트를 활용하여 데이터베이스 내 실행 중인 SQL 문의 목록을 추출하고, 이를 기반으로 SPA를 통해 각 SQL 문의 실행 계획을 수집·분석합니다. 이 과정에서 분석 대상 SQL 문에 대한 인덱스 사용, 조인 방식, 풀 테이블 스캔 등의 정보를 확인하고, 튜닝 개선 작업의 우선순위를 산정합니다.
또한, SPA의 효과적인 활용을 위해 별도의 분석 전용 인스턴스나 테스트 환경을 구성하는 것이 권장됩니다. 이를 통해 실제 운영 환경에 영향을 주지 않으면서, SPA 분석 결과의 신뢰성을 높일 수 있습니다. 분석 결과는 내부 리뷰 회의를 통해 공유되고, 피드백을 수렴하여 최종 개선 계획에 반영됩니다. 이와 함께, SPA와 AWR 리포트를 정기적으로 검토하여 시스템 성능의 장기적 추세를 모니터링하고, 필요 시 추가 튜닝 작업을 수행하는 체계를 마련해야 합니다.
Oracle SPA 메타 테이블 리스트
메타 테이블 이름 | 간략 설명 |
---|---|
SPA_SQL_PLAN | SQL 문의 실행 계획 상세 정보를 저장하며, 각 연산 단계 및 비용 정보를 포함 |
SPA_SQLSTAT | SQL 문별 통계 정보를 기록하여 실행 횟수, CPU 시간, I/O 비용 등 주요 성능 지표 제공 |
SPA_RUN_METADATA | 각 SPA 분석 실행의 메타데이터(실행 시점, 대상 SQL 목록 등)를 보관 |
SPA_ANALYSIS_RESULTS | 변경 전후 분석 결과 및 튜닝 개선 효과를 정량적으로 기록 |
SPA_CONFIG | SPA 도구의 구성 및 환경 설정 정보를 저장 |
'IT > 서버 이관시 고려해야 할 DB 성능 튜닝' 카테고리의 다른 글
Phase.1-4. 힌트(Hint) 적용 : 이전 후 실행 속도 개선 (0) | 2025.02.09 |
---|---|
Phase 1-3.쿼리 리팩토링 : SQL 이전 전/후 비교 기능 제공 (0) | 2025.02.09 |
Oracle 서버 이관 시 쿼리 튜닝 대상 SQL 목록 추출 방법: 사례 및 쿼리 예시 (0) | 2025.02.05 |
Phase 1-2.실행 계획(Explain Plan) 분석 - 개선 포인트 도출 (0) | 2025.02.05 |
Phase 1-1. 이관 대상 쿼리 식별 및 목록화 - 이관 대상이 되는 모든 SQL(추출, 로딩, 검증 쿼리 등) 분석 (0) | 2025.02.05 |
서버 이관 프로젝트에서의 쿼리 튜닝 – Pre, Migration, Post 단계별 접근법 (0) | 2025.02.05 |