--- 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;
-- 실행 --
** SREADTIM 과 MREADTIM 이 1 미만일 경우 ( 0.0x ~ 0.99 )
오라클 옵티마이져는 정확한 통계정보를 수립하지 못하며, NOWORKLOAD 또는 추가적인 계산 방법을 이용하여 Cost 를 계산하는것으로 보인다.
댓글 없음:
댓글 쓰기