◆ SQL 튜닝 기술이 필요한 사람
  ◇ 설계자
    - SQL 튜닝 방법을 알고 있는 설계자가 쉽게 튜닝할 수 있는 스키마 설계 가능
  ◇ 응용프로그램 개발자
    - SQL 튜닝은 물론 물리적 구조 튜닝 병행
    - 성능 좋은 응용프로그램 개발
  ◇ 데이터베이스 관리자
    - SQL 튜닝 요구 및 해결 방법을 정확히 숙지


◆ 튜닝에 필요한 파일들
  ◇ Alert log file
    - DB상황, 오라클 인스턴스가 수행시 발생하는 에러 등을 기록함
    - 파라미터 파일의 background_dump_dest 파라미터로 설정
    - 노마운트 단계에서 기록을 시작함
  ◇ Background process trace file
    - 문제시마다 생성되므로 여러 개 생성됨
    - 파라미터 파일의 background_dump_dest 파라미터로 설정
    - 생성된 트레이스 파일명을 보면 어떤 프로세스가 생성한 파일인지 구분 가능
  ◇ User trace file
    - 유저의 요청에 의해 생성됨(여러 개 가능)
    - 파라미터 파일의 user_dump_dest 파라미터로 설정


◆ 일반적인 튜닝 과정
  - 원하는 목표치 까지 반복적으로 튜닝
  - 튜닝 후에도 예측하지 못한 튜닝 포인트는 계속 발생
  - 원인분석(부하), 조치(서버/SQL 튜닝), 점검(부하)의 과정을 반복


◆ SQL 튜닝의 3가지 접근 방법
  ◇ 부하의 감소
    - 동일한 부하를 보다 효율적인 방법으로 수행
    - 일반적인 SQL 튜닝
  ◇ 부하의 조정
    - 배치, 리포트 업무 등과 일반 업무(OLTP)를 분리
    - 응용프로그램 별, 시간대 별
  ◇ 부하의 병렬 수행
    - 병렬로 수행하여 응답시간을 크게 단축
    - 과도한 사용은 일반 사용자에게 악영향 가능성
    - 주로 배치 업무에 많이 사용됨


◆ SQL 튜닝을 해도 호전되지 않는 경우
  - 시스템 사이징 실패
  - 잘못된 데이터 모델링
  - 비효율적인 스키마 및 프로세스 흐름
  - 개발 중에 모델 및 스키마의 변경
  - 프로젝트 관리 미숙 및 과도한 요구
  - 업무 진행 중 SQL 튜닝 마인드 부재


◆ 요약
● SQL 튜닝은 개발 과정 상의 문제 해결 방법
  - 동일 부하를 효율적인 방법으로 변환
  - 부하의 대부분 원인은 비효율적인 개발
● 업무 설계, 모델링이 잘못되면 튜닝은 무의미
  - 측정 가능한 목표 설정
  - 설계에서 미리 효율적인 시스템 고려
  - 부적절한 리소스, 과도한 요구 배제
  - 개발 시작 이후, 뒤로 돌아가는 것은 금물

'오라클 > 튜닝' 카테고리의 다른 글

[튜닝] 옵티마이저 동작의 조정  (0) 2010.10.07
[튜닝] RBO(Rule-Based Optimization)와 CBO(Cost-Based Optimization)  (0) 2010.10.07
[튜닝] 옵티마이저 개요  (0) 2010.10.05
[튜닝] SQL Trace  (0) 2010.10.05
[튜닝] Autotrace  (0) 2010.10.04
Posted by 겨울섬
,