Phase 1: Pre-Migration (사전 준비 – 소스 서버 중심)
이 단계에서는 소스 서버에서 이관 전 쿼리 및 시스템 환경을 점검하고 최적화합니다. Oracle SPA와 AWR을 비롯한 도구를 활용해 변경 전/후 성능 비교, 실행 계획 분석 등을 수행합니다.
- 이관 대상 쿼리 식별 및 목록화 :
- 대표 키워드: 쿼리 목록, 대상 식별, 우선순위
- 목적: 이관에 사용될 모든 SQL(추출, 로딩, 검증 쿼리 등)을 미리 파악하여 관리
- Util 활용: SQL Developer나 스크립트로 전체 쿼리 목록 생성 후, SPA에서 기본 성능 수치를 기록
- 실행 계획(Explain Plan) 분석 :
- 대표 키워드: 실행 계획, 옵티마이저, 인덱스
- 목적: 각 쿼리의 실행 경로를 분석해 병목 현상이나 불필요한 풀 스캔 여부 확인
- Util 활용: Oracle SPA로 실행 계획을 수집하고, AWR 리포트와 함께 분석하여 개선 포인트 도출
- 쿼리 리팩토링 :
- 대표 키워드: 쿼리 단순화, 구조 개선, 코드 정리
- 목적: 복잡하거나 중복된 쿼리를 단순화하여 불필요한 연산 제거
- Util 활용: SQL Developer의 리팩토링 도구와 SPA의 변경 전/후 비교 기능 활용
- 힌트(Hint) 적용 :
- 대표 키워드: SQL 힌트, 강제 인덱스, 조인 순서
- 목적: 옵티마이저가 부적절한 실행 계획 선택 시, 힌트를 통해 최적의 경로 유도
- Util 활용: SPA에서 힌트 적용 전후의 실행 계획 변화를 확인하고, AWR을 통해 성능 변화를 모니터링
- 병렬 처리 옵션 활용 :
- 대표 키워드: PARALLEL, 병렬 처리, 다중 프로세스
- 목적: 대용량 데이터를 효율적으로 처리하기 위해 병렬 실행 옵션 준비
- Util 활용: Data Pump의 PARALLEL 옵션 사용과 함께, SPA 및 AWR 리포트를 통해 병렬 쿼리 성능을 점검
- 최신 SQL 문법 및 기능 활용 :
- 대표 키워드: CTE, 윈도우 함수, 최신 SQL
- 목적: 최신 SQL 기능 도입으로 쿼리 가독성과 효율성 향상
- Util 활용: 변경 전후의 쿼리 성능을 SPA 및 AWR을 통해 비교 분석
- 불필요한 쿼리 호출 제거 :
- 대표 키워드: 중복 제거, 최적화, 효율성
- 목적: 중복되거나 불필요한 SQL 호출 제거해 자원 소모 최소화
- Util 활용: AWR 및 SPA 로그를 통해 중복 실행 쿼리를 식별
- 동적 SQL의 바인드 변수 활용 :
- 대표 키워드: 동적 SQL, 바인드 변수, 파싱 최적화
- 목적: 동적 쿼리 작성 시 리터럴 대신 바인드 변수 사용으로 파싱 비용 절감
- Util 활용: SPA를 통해 바인드 변수 사용 후 파싱 비용 감소 효과를 확인
- 쿼리 재사용성 및 모듈화 :
- 대표 키워드: 모듈화, 재사용, 코드 정리
- 목적: 반복 사용되는 SQL을 프로시저나 함수로 모듈화해 유지보수 용이
- Util 활용: 코드 관리 도구와 SPA를 통해 재사용 쿼리의 성능을 일관되게 모니터링
- SQL Trace 및 TKPROF 분석 :
- 대표 키워드: SQL Trace, TKPROF, 실행 분석
- 목적: SQL Trace로 실행 로그 수집 후 TKPROF로 분석하여 병목 파악
- Util 활용: SPA와 연계해 Trace 데이터를 수집하고, AWR 리포트와 비교 분석
- 쿼리 비용(Cost) 기반 평가 :
- 대표 키워드: 비용 평가, 우선순위, 옵티마이저 비용
- 목적: 옵티마이저가 산출한 비용을 기준으로 튜닝 대상 쿼리의 우선순위 결정
- Util 활용: Oracle SPA의 비용 분석 기능과 AWR 리포트로 비용이 높은 쿼리를 식별
- 조인 연산 방식 최적화 :
- 대표 키워드: 조인 최적화, 조인 방식, 성능 개선
- 목적: 데이터 특성에 맞는 조인(예: Nested Loop, Hash Join 등) 방식 선택
- Util 활용: SPA와 SQL Tuning Advisor, AWR 리포트로 조인 방식 변경 전후 성능 비교
- 서브쿼리와 인라인 뷰 최적화 :
- 대표 키워드: 서브쿼리 최적화, WITH절, 인라인 뷰
- 목적: 중복 계산 방지를 위해 서브쿼리를 WITH절(CTE)이나 인라인 뷰로 대체
- Util 활용: SPA로 변경 전후의 실행 계획을 비교하고, AWR을 통해 성능 개선 확인
- 바인딩 변수의 적극적 활용 :
- 대표 키워드: 바인딩 변수, SQL 재사용, 파싱 비용
- 목적: 리터럴 대신 바인딩 변수를 사용해 SQL 실행 계획의 재사용성 향상
- Util 활용: SPA에서 바인드 변수 적용 후 파싱 비용 및 캐시 적중률을 AWR과 함께 검증
- 조회 컬럼 최소화 및 SELECT 절 최적화 :
- 대표 키워드: 컬럼 최적화, 데이터 양 최소화, SELECT 절
- 목적: 필요한 컬럼만 조회하여 I/O와 네트워크 부담 감소
- Util 활용: SPA와 AWR을 통해 SELECT 절 최적화 전후 응답 시간 비교
- 쿼리에서의 데이터 형 변환 최소화 :
- 대표 키워드: 데이터 형 변환, 캐스팅 최적화, 비용 절감
- 목적: 불필요한 형 변환 제거로 실행 계획 단순화 및 성능 개선
- Util 활용: SPA와 AWR에서 변경 전후 실행 계획을 비교 분석
- PL/SQL 내부 커서 최적화 :
- 대표 키워드: 커서 최적화, 루프 개선, PL/SQL 성능
- 목적: PL/SQL 루프 내 커서 사용 최적화하여 반복 실행 비용 낮추기
- Util 활용: SPA와 AWR 리포트로 커서 사용에 따른 성능 영향을 분석
- BULK COLLECT 및 FORALL 활용 :
- 대표 키워드: BULK COLLECT, FORALL, 대량 데이터 처리
- 목적: 대량 데이터 처리 시 반복문 오버헤드 감소
- Util 활용: SPA로 배치 처리 전후 성능을 비교하고, AWR 리포트로 성능 개선 확인
- 트랜잭션 범위 및 커밋 전략 재검토 :
- 대표 키워드: 트랜잭션 관리, 커밋 전략, 락 최소화
- 목적: 트랜잭션을 짧게 유지하고 적절한 커밋 시점을 설정해 락 경합을 줄임
- Util 활용: SPA와 AWR 리포트를 활용해 트랜잭션 처리 변화 및 락 상황 모니터링
- SQL 실행 계획 캐시 활용 :
- 대표 키워드: 실행 계획 캐시, SQL 재사용, 파싱 비용
- 목적: 변경 없는 SQL은 캐시된 실행 계획을 재사용하여 파싱 비용 절감
- Util 활용: SPA의 실행 계획 캐시 모니터링 기능과 AWR을 통해 재사용 효과 확인
- 네트워크 I/O와 쿼리 연계 최적화 :
- 대표 키워드: 네트워크 최적화, 데이터 압축, 전송 속도
- 목적: 소스 서버에서 데이터 추출 시 네트워크 대역폭 및 전송 속도를 최적화
- Util 활용: 네트워크 성능 테스트 도구와 함께 SPA 및 AWR을 통해 전송 효율 점검
- 대용량 쿼리 분할 전략 :
- 대표 키워드: 쿼리 분할, 배치 처리, 범위 제한
- 목적: 한 번에 처리하는 데이터 양을 줄이기 위해 쿼리를 범위별 또는 배치로 분할
- Util 활용: SPA를 통해 분할 처리 전후의 실행 시간 및 리소스 사용을 비교
- 쿼리 실행 시간 및 성능 벤치마크 수립 :
- 대표 키워드: 벤치마크, 성능 측정, 실행 시간 비교
- 목적: 이관 전 주요 쿼리의 실행 시간을 측정해 기준 성능을 확보
- Util 활용: Oracle SPA와 AWR 리포트를 활용해 이관 전/후 성능 수치를 정량적으로 비교
- 쿼리 병목 구간 식별 :
- 대표 키워드: 병목 분석, 성능 진단, 튜닝 포인트
- 목적: 전체 쿼리 흐름 중 성능 저하 원인 파악
- Util 활용: SPA와 AWR 리포트를 통해 병목 구간을 식별 및 상세 분석
- 데이터 필터링 조건 강화 :
- 대표 키워드: 조건 최적화, 필터링 강화, 데이터 스캔 최소화
- 목적: WHERE 절 등의 조건을 명확하게 하여 불필요한 전체 데이터 스캔 방지
- Util 활용: SPA를 통해 조건 변경 전후의 실행 계획 변화를 확인하고, AWR로 성능 비교
- 쿼리 튜닝 테스트 환경 구축 :
- 대표 키워드: 테스트 베드, 사전 검증, 환경 복제
- 목적: 운영 환경과 유사한 테스트 환경에서 튜닝 적용 전후 성능을 검증
- Util 활용: Oracle SPA와 AWR을 활용해 테스트 환경에서의 성능 실험 진행
- 튜닝 결과 문서화 및 지속적 피드백 반영 :
- 대표 키워드: 문서화, 피드백, 지속적 개선
- 목적: 모든 튜닝 작업과 변경 사항을 체계적으로 기록하여 향후 개선에 활용
- Util 활용: SPA 리포트와 AWR, OEM 리포트, 그리고 내부 문서 관리 시스템을 통해 결과를 정리
Phase 2: Migration Execution (이관 실행 – 데이터 추출 및 전송 단계)
이 단계에서는 소스 서버에서 실제 데이터 추출 및 전송을 수행하면서, 사전에 준비한 쿼리와 전략을 그대로 적용합니다.
- 임시 테이블 활용 :
- 대표 키워드: 임시 테이블, 중간 결과 저장, 배치 처리
- 목적: 복잡한 연산이나 다중 조인 결과를 임시 테이블에 저장해 처리 부하를 분산
- Util 활용: Data Pump 스크립트와 임시 테이블 활용 후, SPA와 AWR을 통해 처리 시간 및 리소스 사용 모니터링
- 쿼리 결과 캐싱 및 세션 재사용 :
- 대표 키워드: 결과 캐시, 세션 재사용, 연결 오버헤드
- 목적: 추출 쿼리의 반복 실행 시 결과 캐시 활용과 커넥션 풀을 통한 세션 재사용으로 전송 효율 향상
- Util 활용: SPA와 AWR, 그리고 애플리케이션 서버의 커넥션 풀 모니터링 도구 연계
Phase 3: Post-Migration (이관 후 – 대상 서버 최적화 및 운영 안정화)
이 단계에서는 대상(이관된) 서버에서 최종 성능 점검 및 후속 튜닝을 진행합니다. Oracle SPA와 AWR, OEM 등의 도구를 활용해 이관 후 성능 변화 및 실행 계획 변경을 실시간 모니터링합니다.
- 최신 통계 정보 수집 및 업데이트 :
- 대표 키워드: DBMS_STATS, 통계 업데이트, 옵티마이저
- 목적: 대상 서버 데이터에 대해 최신 통계 정보를 업데이트하여 옵티마이저가 최적 실행 계획을 산출하도록 유도
- Util 활용: DBMS_STATS 스크립트 실행 후, SPA와 AWR을 통해 업데이트 전후 실행 계획 비교
- 인덱스 최적화 및 재구성 :
- 대표 키워드: 인덱스 재구성, 인덱스 재설계, 성능 개선
- 목적: 대상 서버에서 자주 사용되는 컬럼 중심의 인덱스를 재검토하고 재구성
- Util 활용: SPA와 SQL Tuning Advisor, AWR 리포트를 활용해 인덱스 변경 후 성능 분석
- 뷰(View) 재정의 및 최적화 :
- 대표 키워드: 뷰 최적화, Materialized View, 단순화
- 목적: 복잡하게 구성된 뷰를 단순화하거나 Materialized View로 전환해 응답 속도 개선
- Util 활용: SPA로 뷰 변경 전후 실행 계획 비교 및 AWR을 통해 응답 시간 개선 확인
- 커넥션 풀 최적화 :
- 대표 키워드: 커넥션 풀, 세션 관리, 연결 효율
- 목적: 대상 서버의 애플리케이션 접속 환경을 최적화해 연결 생성/해제 오버헤드 최소화
- Util 활용: 애플리케이션 모니터링 도구, SPA와 AWR을 통해 커넥션 풀 상태 점검
- 물리적 I/O 비용 최소화 :
- 대표 키워드: I/O 최적화, 스토리지 배치, 디스크 접근 최소화
- 목적: 대상 서버의 스토리지 구성 및 데이터 파일 배치를 최적화하여 불필요한 디스크 I/O 감소
- Util 활용: I/O 모니터링 도구와 SPA, AWR 리포트를 통해 I/O 성능 변화 확인
- 쿼리 로그 자동 분석 도구 도입 :
- 대표 키워드: 로그 분석, 자동화 도구, 성능 모니터링
- 목적: 대상 서버에서 쿼리 로그를 자동 분석하여 성능 이슈를 실시간으로 감지
- Util 활용: Oracle SPA와 OEM, AWR 로그 분석 기능 연계
- 실행 계획 변경 감지 및 알림 시스템 :
- 대표 키워드: 실행 계획 감지, 알림 시스템, 자동 모니터링
- 목적: 예상과 다른 실행 계획 변경 발생 시 자동 알림을 받아 신속 대응
- Util 활용: SPA의 실행 계획 모니터링 기능 및 AWR, OEM과 연동해 알림 설정
- 사용자 정의 함수 및 저장 프로시저 최적화 :
- 대표 키워드: 저장 프로시저 최적화, 사용자 정의 함수, PL/SQL 성능
- 목적: 대상 서버에 배포된 PL/SQL 로직 점검 후 불필요한 연산 제거 및 최적화
- Util 활용: SPA와 SQL Tuning Advisor, AWR을 통해 함수/프로시저 성능 분석
- 실시간 성능 모니터링 및 대시보드 구축 :
- 대표 키워드: 대시보드, 실시간 모니터링, 시각화
- 목적: Oracle Enterprise Manager, Grafana 등 도구를 활용해 대상 서버의 주요 성능 지표를 시각화 및 모니터링
- Util 활용: SPA와 AWR, OEM을 연계해 실시간 모니터링 대시보드 구성
- 오라클 옵티마이저 환경 파라미터 조정 :
- 대표 키워드: 옵티마이저 파라미터, 실행 계획 최적화, 환경 설정
- 목적: OPTIMIZER_MODE, OPTIMIZER_INDEX_COST_ADJ 등 파라미터 조정을 통해 대상 서버에서 최적 실행 계획 산출 유도
- Util 활용: SPA와 AWR을 통해 파라미터 변경 전후의 실행 계획 및 성능 비교
- (최종) 튜닝 결과 문서화 및 지속적 피드백 반영 :
- 대표 키워드: 문서화, 피드백, 지속적 개선
- 목적: 이관 후 진행된 모든 튜닝 작업과 변경 사항, 성능 개선 결과를 체계적으로 기록하여 향후 개선에 활용
- Util 활용: SPA 리포트, AWR 리포트 및 내부 문서 관리 시스템(OEM 포함)을 활용해 결과를 정리하고 정기 리뷰