2010년 1월 31일 일요일

CPU 통계정보

--- CPU 통계정보 수집 ---


-- 통계수집 테이블 생성

begin

      dbms_stats.create_stat_table(

      ownname => USER

      , stattab => 'mystats'

      , tblspace => 'USERS'

      , global_temporary => FALSE

);

end;

/


-- 통계수집 on

begin

        dbms_stats.gather_system_stats(

        gathering_mode => 'start'

        , stattab       => 'mystats'

        , statid                => 'OLTP');

end;

/

-- 통계수집 off

begin

        dbms_stats.gather_system_stats(

        gathering_mode => 'stop'

        , stattab       => 'mystats'

        , statid                => 'OLTP');

end;

/


-- 통계 테이블 export

begin

   dbms_stats.export_system_stats('mystats','OLTP',USER);

   end;

/

-- 통계 테이블 import

begin

   dbms_stats.import_system_stats('mystats','OLTP',USER);

   end;

  /


또는 ..

execute dbms_stats.gather_system_stats('start');

execute dbms_stats.gather_system_stats('stop');


--- CPU costing 직접 설정 ---


begin

dbms_stats.set_system_stats('CPUSPEED',700);

dbms_stats.set_system_stats('SREADTIM',0.20);

dbms_stats.set_system_stats('MREADTIM',0.40);

dbms_stats.set_system_stats('MBRC',14);

end;

/

alter system flush shared_pool;


-- 실행 --

SQL> select
            pname ,pval1
    from
            sys.aux_stats$
    where
            sname = 'SYSSTATS_MAIN'
    ;

PNAME    PVAL1
------------------------------ ----------
CPUSPEEDNW       587.115789
IOSEEKTIM       10
IOTFRSPEED     4096
SREADTIM     .555
MREADTIM     .403
CPUSPEED     1180
--MBRC : 통계정보를 수집하면서 평균으로 읽은(multi block read count ) 개수  
MBRC    14
MAXTHR    23552



** SREADTIM 과 MREADTIM 이 1 미만일 경우 ( 0.0x ~ 0.99 )  

오라클 옵티마이져는 정확한 통계정보를 수립하지 못하며, NOWORKLOAD 또는 추가적인 계산 방법을 이용하여 Cost 를 계산하는것으로 보인다.

댓글 없음:

댓글 쓰기