====== Automatic Management ======
===== Objectives =====
- 데이타베이스 성능 진단을 위한 다양한 툴을 이야기 할 수 있다.
- 데이타베이스 Advisors를 활용할 수 있다.
- SQL Tuning Advisor를 이용하여 데이타베이스 성능을 향상 시킬 수 있다.
===== Oracle Wait Events =====
- wait과 wait이 발생하는 이유를 통하여 세션과 프로세스 정보를 제공하여 Wait Events를 수집한다.
- 다양한 이벤트는 V$EVENT_NAME 뷰를 통하여 조회할 수 있다.
===== System Statistics =====
{{study:oracle:10gadminii:automaticmanagement:systemstatistics.jpg|}}
==== 예 ====
- Displaying Systemwide Statistics 1 SELECT name, class, value FROM v$sysstat;
- Displaying Systemwide Statistics 2 SELECT * FROM V$SYSTEM_WAIT_CLASS WHERE wait_class LIKE '%I/O%';
- SGA Global Statistics SELECT * FROM v$sgastat;
===== Displaying Session-Related Statistics =====
{{study:oracle:10gadminii:automaticmanagement:displayingsessionrelatedstatistics.jpg|}}
===== Troubleshooting and Tuning Views =====
{{study:oracle:10gadminii:automaticmanagement:troubleshootingandtuningviews.jpg|}}
===== Statistics Collection =====
==== 통계정보 종류 ====
- Optimizer statistics
- System statistics
==== 통계수집 방법 ====
- GATHER_STATS_JOB 이 자동으로 수집한다.
- DBMS_STATS 패키지를 통하여 수동으로 수집한다.
- 데이타베이스 초기 파라메터 설정에 의하여 수집한다.
- 다른 데이타베이스로 부터 통계정보를 import 시킨다.
===== Automatic Optimizer Statistics Collection: Overview =====
^ Oracle 8i | DBMS_STATS 패키지 제공 | DBA는 어떻게 통계정보를 수집할지 결정 \\ DBA는 언제 통계정보를 수집할지 결정 |
^ Oracle 9i | 언제 통계정보를 수집할지 결정 | 명령어로 통계정보를 수집 \\ DBA는 언제 통계정보를 수집할지 결정 |
^ Oracle 10g | 통계정보 자동 수집 | DBA는 통계정보 수집할 필요가 없음 \\ Table 모니터링은 기본값이다 |
===== Dictionary and Special Views =====
- DBMS_STATS 패키지를 이용하며, 아래와 같은 다양한 dictionary와 special views 를 제공한다.
- DBA_TABLES, DBA_TAB_COLUMNS
- DBA_CLUSTERS
- DBA_INDEXES, INDEX_STATS
- INDEX_HISTOGRAM, DBA_TAB_HISTGRAMS
- DBMS_STATS 패키지를 다시 실행하기 전까지 통계정보는 변하지 않는다.
===== Statspack =====
- statspack.snap 실행을 통계정보를 수집한다.
- spauto.sql 스크립트를 통하여 자동으로 통계정보를 수집한다.
- spreport.sql 스크립트를 이용하여 보고서를 만들 수 있다.
- TIME_STATISTICS 값이 TRUE 이면 시간별 정보를 수집한다.
===== Workload Repository =====
{{study:oracle:10gadminii:automaticmanagement:workloadrepository.jpg|}}
===== AWR Snapshot Baselines =====
{{study:oracle:10gadminii:automaticmanagement:awrsnapshotbaselines.jpg|}}
===== Advisory Framework Overview =====
{{study:oracle:10gadminii:automaticmanagement:advisoryframeworkoverview.jpg|}}
===== Database Control and Advisors =====
===== Typical Advisor Tuning Session =====
{{study:oracle:10gadminii:automaticmanagement:typicaladvisortuningsession.jpg|}}
===== Manually Invoking ADDM =====
===== Application Tuning Challenges =====
{{study:oracle:10gadminii:automaticmanagement:applicationtuningchallenges.jpg|}}
===== SQL Tuning Advisor Overview =====
{{study:oracle:10gadminii:automaticmanagement:sqltuningadvisoroverview.jpg|}}
===== SQL Tuning Advisor Options and Recommendations =====
===== Using the SQL Tuning Advisor =====
- SQL Tuning Advisor를 이용하여 SQL를 분석하여 성능 향상을 권고한다.
- SQL Tuning Advisor 소스를 분석한다.
^ Top SQL | 현재 실행중인 top SQL를 분석한다 |
^ SQl Tuning Sets | 사용자가 제공하는 SQL문을 분석한다 |
^ Snapshots | 스냅샷을 분석한다 |
^ Baseline | 베이스라인을 분석한다 |
===== Using the SQL Tuning Advisor: Example =====
===== Using the SQL Access Advisor =====
===== The Undo Management Page =====
===== Automatic Undo Retention Tuning =====
^ Proactive tuning | Undo retention 시간이 오래걸리는 쿼리를 튜닝한다. \\ 쿼리정보는 30초마다 수집한다 |
^ Reactive tuning | Undo retention은 서서히 줄어든다. \\ 만료되지않은 extent 중 가장 오래된 것부터 사용한다 \\ Undo retention 은 UNDO_RETENTION 또는 15분 이든 적은 값을 기준으로 설정된다. |
^ Enabled by default | 활성화가 기본 값이다 |
===== The Undo Advisor Page =====
===== Summary =====
- 데이타베이스 성능 진단을 위한 다양한 툴을 설명하였다.
- 데이타베이스 Advisors를 이용하였다.
- SQL Tuning Advisor를 이용하여 데이타베이스 성능을 향상시킨다.
===== Practice Overview: Optimizing Database Performance =====