ORACLE/TUNING2008. 2. 1. 19:28
반응형

1. 대량의 데이터 로드 작업 수행후에는 DBA가 작업 후 바로 통계작업을 실시해야 최신의 통계정보를 유지할 수 있다.

(바로 통계작업을 해도 바로 적용되지 않으니 안심해도 된다. http://blog.naver.com/ukja/120045329315 참조하삼)

 

2. 당연하겠지만.. external table은 통계정보 대상이 아니다.

 

3. 시스템 통계는 DBA가 직접 수행해야 한다.

   exec dbms_stats.gather_system_stats;

 

4. fixed object에 대한 통계수집도 자동화되지 않는다.

   (v$view와 같은 dynamic performance view는 자동화 대상이 아니다.)

 

5. 대량의 데이터를  insert하고 delete하는 등등 항상 full table scan이 필요한 테이블 등에 대해서는..

   자동으로 table통계를 수집하는것이 오히려 악영향을 끼친다. 때문에 이러한 테이블들은..

   exec dbms_stats.lock_table_stats('SCOTT','EMP'); 이런 프로시져로... locking을 하여..

   자동 통계수집 대상 테이블에서 제외 할 수 있다.

 

6. 10g부터 데이터 변동을 추정하는 table 모니터링은 자동화 되었다.

    alter table과 같은 명령어로 table 모니터링을 제어 할 수 있지만.. 이것은 명령만 유효할뿐..

    실제 내부적으로는 아무런 영향을 주지 않는다.

    Note:295249.1 <--- 참조하세요^^

 

7. 10g의 자동화된 통계수집 기능을 완전히 끄고 싶으면...

    gather_stats_job을 disable 시키고..

    statistics_level 파라메터 값을 basic으로 바꾸면 완벽하게 자동통계 기능을 끄는것이다.

 

8. 통계정보를 수집할때 dbms_stats로 수집을 하면 오라클은 그 정보들의 미래의 사용 가능성을 염두해두고

   old_version으로 관리를 한다. 이런것들은 나중에 필요하면 dbms_stats.restore_*_stats로 과거 통계를 복원 할 수 있다.

   그러나 analyze command로 통계를 수집하면 old version으로 보존되지 않는다.

   통계정보 유지기간 확인및 설정은 다음과 같이 한다.

 

   유지기간 확인

   select dbms_stats.get_stats_history_retention from dual;

   유지기간 변경

   exec dbms_stats.alter_stats_history_retention(61);

Note:236935.1 <--- analyze와 dbms_stats의 차이점 참조하세요^^

9. 자동화된 통계정보는 AWR에 저장되며 AWR은 SYSAUX에 위치한다.

 

10. undo와 관련하여 AWR에 저장된 통계정보를 통해 오라클 스스로 얼마나 많은 수의 undo segment를 온라인 할것인지

     바로 결정할 수 있기때문에 Fast Ramp-Up이 가능하다.

 

11. 오라클 10g가 취합한 통계들은 SGA에 저장되어 v$view로 접근할 수 있으며 이 통계들은 주기적으로

     10g의 새로운 background processes인 MMON에 의해 스냅샷 형태로 AWR에 저장된다.

     기본 주기는 60분마다 스냅샷이 생성된다.

 

12. AWR 리포트가 보고 싶으면 $ORACLE_HOME/rdbms/admin/awrrpt.sql 을 돌리면 된다.

 

13. ASH (Active Session History)는 AWR과 ADDM의 한계를 극복하기 위해 나왔다.

     기본적으로 database를 분석하는 시간이 1시간 이기때문에 문제가 생겼을때 최신의 정보분석이 어렵다.

     이런 문제점을 극복하기 위해 만들어진 ASH는 매 초마다 "active session"에 한해 샘플링을 실시하여 저장한다.

     이 정보들은 historical하게 볼 수 있으므로 이미 발생하거나 지금 발생하고 있는 문제들에 대해

     실시간으로 historical하게 접근 할 수 있다.

     메모리상에 위치하는 rolling buffer로 만들어지고 SGA에 존재하며

     shared pool의 5%를 넘지 않도록 구성되며 평균적으로 CPU 1개당 2MB의 크기를 점유한다.

     ASH는 주기적으로 MMON에 의해 60분마다 디스크로 쓰이게 되며 정보가 워낙 많아서 그 많은 정보를 디스크에 모두

     저장할 수 없기 때문에 MMNL에 의해 필터링되서 저장된다.

     ASH는 v$active_session_history를 통해 접급 할 수 있다.   

    

반응형
Posted by [PineTree]