4. 데이터 프로시저 최적화
쿼리 성능 개선 절차 - 문제 있는 SQL 식별, 옵티마이저 통계 확인, 실행계획 검토, SQL문 재구성, 인덱스 재구성, 실행계획 유지관리
문제 있는 SQL 식별 : 어플리케이션 성능 관리나 모니터링에 사용하는 도구인 APM (Application Performance Managemeent) 등 활용
옵티마이저 통계 확인
- 옵티마이저 : SQL문을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS의 핵심 모듈
- 최적의 처리 경로를 생성하기 위해 옵티마이저가 활용하는 통계정보를 주기적으로 현행화 (ANALYZE TABLE member COMPUTE STATISTICS;)
- RBO (Rule Based Optimizer) : 통계 정보가 없는 상태에서 미리 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저, 우선 순위 기반, 인덱스 구조, 조건절 형태.., 사용자가 원하는 처리경로로 유도 가능
- CBO (Cost Based Optimizer) : 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택하는 옵티마이저, 수행 시간 기반, 레코드 수, 블록 수, 컬럼 값 분포.., 성능보장 가능 (구분 : 쿼리변환, 비용산정, 계획 생성)
실행계획 검토 : 처리량이 적은 테이블을 driving table로 지정했는지 확인
SQL문 재구성
- 특정 값 지정하기 : <나 >보다 = 활용, 범위 줄이기)
- 힌트 사용 : 옵티마이저가 비정상적인 실행계획을 수립할 때 힌트로 액세스 경로와 조인 순서를 제어할 수 있게 도와줌
- 별도의 SQL 사용 : 컬럼 변경 연산자 쓰지 않기, 불필요한 검색 방지, 하나의 SQL문 사용시 UNION ALL 연산자 사용
- HAVING 미사용 : 인덱스가 걸린 컬럼은 HAVING 사용 시 인덱스 미사용
- 인덱스만 질의 사용 : 가능한 인덱스만 이용해 질의를 수행해 옵티마이저가 최적의 경로를 찾도록 유도
인덱스 재구성 : 성능에 중요한 액세스 경로를 고려해 인덱스화 (자주 쓰는 컬럼 선정, SORT 명령어 생략, 분포도 고려, 변경 적은 컬럼 선정, 결합 인덱스 사용)
실행계획 유지관리 : DB 버전 업그레이드, 데이터 이동 등 시스템 환경 변경 사항이 발생할 때도 실행계획이 유지되는지 모니터링하고 관리
'정보처리기사' 카테고리의 다른 글
정보처리기사 실기 - 통합 구현 (2) (0) | 2022.01.17 |
---|---|
정보처리기사 실기 - 통합 구현 (1) (0) | 2022.01.16 |
정보처리기사 실기 - 데이터 입출력 구현 (3) (0) | 2022.01.14 |
정보처리기사 실기 - 데이터 입출력 구현 (2) (0) | 2022.01.13 |
정보처리기사 실기 - 데이터 입출력 구현 (1) (1) | 2022.01.12 |