h3.04 통계정보 I
옵티마이저가 참조하는 통계정보 종류로 아래 네 가지
통계정보를 확인할 수 있는 주요 Data Dictionary |
---|
ALL_TABLES ALL_INDEXES ALL_TAB_COLUMNS ALL_IND_COLUMNS ALL_TAB_PARTITIONS ALL_IND_PARTITIONS |
주요 Data Dictionary 내용 |
---|
ALL_TABLES NUM_ROWS : TABLE의 자료 건수 BLOCKS : TABLE이 실제 사용하는 BLOCK의 갯수 EMPTY_BLOCKS : BLOCKS중 전혀 사용하지 않은 BLOCK의 갯수 AVG_SPACE : 1 BLOCK의 평균 FREE BYTES CHAIN_CNT : 2 BLOCK에 나누어 저장된 ROW의 개수 AVG_ROW_LEN : 1 RECORD의 평균 크기 |
ALL_INDEXES BLEVEL : ROOT BLOCK으로부터 LEAF BLOCK까지의 DEPTH. LEAF_BLOCKS : INDEX의 LEAF BLOCK 갯수 DISTINCT_KEYS : 서로 다른 값의 갯수 AVG_LEAF_BLOCKS_PER_KEY : 1개의 값으로 검색해야 하는 평균 LEAF BLOCK의 수 AVG_DATA_BLOCKS_PER_KEY : 1개의 값으로 검색해야 하는 평균 DATA BLOCK의 수 CLUSTERING_FACTOR : 해당 INDEX의 KEY 값이 TABLE에 물리적으로 배열된 정도 표시 NUM_ROWS : INDEX에 저장된 자료량 ALL_TAB_COLUMNS NUM_DISTINCT : 서로 다른 값의 갯수 LOW_VALUE : 제일 낮은 값 HIGH_VALUE : 제일 높은 값 NUM_NULLS : NULL값의 갯수 NUM_BUCKETS : HISTOGRAM 생성 시 사용한 구분자의 갯수 DENSITY : 값의 밀도. 1/NUM_DISTINCT |
NoWorkload 시스템 통계
오라클이 무작위로 1/0를 발생시켜 측정한 값 (10g ~ )
관리자가 명시적으로 선택하지 않더라도 CPU 비용 모델이 기본 비용 모델로 시용되게 하려고 오라클 10g에서 NoWorkload 시스템 통계를 도입.
Workload 시스템 통계를 수집하고 반영하는 순간 NoWorkload 시스템 통계는 무시.
어떤 이유에서건 NoWorkload 시스템 통계를 이용하기로 했다면 기본 설정 값을 그대로 사용하지 말고,
적당한 부하를 준 상태에서 NoWorkload 시스템 통계를 수집
Workload 시스탬 통계
실제 애플리케이션에서 발생하는 부하를 측정한 값 (9i부터~ )
EXP/IMP를 통하여 업그레이드 프로젝트에 쓰일수 있으며, 수동셋팅도 가능
Workload 시스탬 통계 실습 {code:sql} |
---|
SQL> select sname,pname,pval1,pval2 from sys.aux_stats$;
SNAME PNAME PVAL1
SYSSTATS_INFO DSTART
04-20-2013 00:50
SYSSTATS_INFO DSTOP
04-20-2013 00:50
SYSSTATS_INFO FLAGS 0
SYSSTATS_MAIN CPUSPEEDNW 3152.7
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 개의 행이 선택되었습니다.
1. 시스템 통계를 담을 테이블 생성
begin
dbms_stats.create_stat_table(
ownname => USER
, stattab => 'mystats'
, tblspace => 'USERS'
, global_temporary => FALSE
);
end;
/
2. 시스템 통계 수집
918843 개의 행이 선택되었습니다.
SQL> begin
2 dbms_stats.gather_system_stats(
3 gathering_mode => 'stop',
4 stattab => 'mystats',
5 statid =>'OLTP');
6 end;
7 /
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> begin
2 dbms_stats.export_system_stats('mystats', 'OLTP', USER);
3 end;
4 /
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> begin
2 dbms_stats.import_system_stats('mystats', 'OLTP', USER);
3 end;
4 /
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> alter system flush shared_pool;
시스템이 변경되었습니다.
SQL> select sname,pname,pval1,pval2 from sys.aux_stats$;
SNAME PNAME PVAL1
SYSSTATS_INFO DSTART
04-20-2013 00:50
SYSSTATS_INFO DSTOP
04-20-2013 00:50
SYSSTATS_INFO FLAGS 0
SYSSTATS_MAIN CPUSPEEDNW 3152.7
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED 3099
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 개의 행이 선택되었습니다.
SQL> begin
2 dbms_stats.set_system_stats ( 'CPUSPEED', 500);
3 dbms_stats.set_system_stats ( 'SREADTIM', 5.0);
4 dbms_stats.set_system_stats ( 'MREADTIM', 30.0);
5 dbms_stats.set_system_stats ( 'MBRC', 12) ;
6 end;
7 /
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> select sname,pname,pval1,pval2 from sys.aux_stats$;
SNAME PNAME PVAL1
SYSSTATS_INFO DSTART
04-20-2013 07:39
SYSSTATS_INFO DSTOP
04-20-2013 07:39
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 3152.7
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM 5
SYSSTATS_MAIN MREADTIM 30
SYSSTATS_MAIN CPUSPEED 500
SYSSTATS_MAIN MBRC 12
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 개의 행이 선택되었습니다.
||
||NoWorkload 시스템 통계
{code:sql}
SQL> begin
2 dbms_stats.gather_system_stats( gathering_mode => 'NOWORKLOAD');
3 end;
4 /
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> select sname,pname,pval1,pval2 from sys.aux_stats$;
SNAME PNAME PVAL1
------------------------------ ------------------------------ ----------
PVAL2
--------------------------------------------------------------------------------
--------------------------------------------------
SYSSTATS_INFO STATUS
COMPLETED
SYSSTATS_INFO DSTART
04-20-2013 07:46
SYSSTATS_INFO DSTOP
04-20-2013 07:46
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 3075.54
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM 5
SYSSTATS_MAIN MREADTIM 30
SYSSTATS_MAIN CPUSPEED 500
SYSSTATS_MAIN MBRC 12
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 개의 행이 선택되었습니다.
||