====== 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 =====