1. 옵티마이저 시스템 통계 정보 조회방법
시스템 통계 정보는 옵티마이저의 I/O비용 CPU 비용을 추정하기위해 사용하는 정보
일반적으로 수동적으로 정보를 업테이트 해줘야한다
EXEC dbms_stats.gather_system_stats('Start'); ##시스템 통계 정보 분석
select * from sys.aux_stats$ ## 시스템 통계 정보의 조회
#=================================
SYSSTATS_MAIN CPUSPEEDNW 1095.53739786298
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
SYSSTATS_INFO STATUS MANUALGATHERING
SYSSTATS_INFO DSTART 07-21-2024 19:51
SYSSTATS_INFO DSTOP 07-21-2024 19:51
SYSSTATS_INFO FLAGS 1
SYSSTATS_TEMP SBLKRDS 12038
SYSSTATS_TEMP SBLKRDTIM 2362.515
SYSSTATS_TEMP MBLKRDS 973
SYSSTATS_TEMP MBLKRDTIM 389.453
SYSSTATS_TEMP CPUCYCLES 76692
SYSSTATS_TEMP CPUTIM 32269
SYSSTATS_TEMP JOB 0
SYSSTATS_TEMP CACHE_JOB 448
SYSSTATS_TEMP MBRTOTAL 21855
#=================================
##TEST 포인트
통계정보 수집 시 고려사항
1. 시간/주기: 부하가 없는 시간대에 가능한 한 빠르게 수집을 완료한다.
2. 정확성: 표본 검사하더라도 전수 검사할 때의 통계치를 접근해야한다. # 통계처리 하기 전과 후의 '원본' 이 같아야한다.
3. 안정성: 데이터에 큰 변화가 없는데도 매번 통계치가 바뀌지 않아야 한다.
2. 옵티마이저 통계 정보 조회방법
위와 달리 객체 정보에 대한 통계정보 방법
테이블 통계 정보(=cost)를 위해 I/O, cpu cost 정보를 위해 사용되는 정보이다.
#테이블의 통계 정보 수집
analyze table emp
compute statistics;
#모든 테이블에 대한 통계 정보 수집
select * from all_tab_statistics;
#통계 정보를 통해 table 의 총 행의 수, 수집하는 product 수집
analyze table Bonus compute STATISTICS;
#테이블 결과
NUM_ROWS 0
BLOCKS 0
AVG_ROW_LEN 0
SAMPLE_SIZE 0
LAST_ANALYZED 24/07/21
LAST_ANALYZED_SINCE 24/07/21
#스키마 통계 정보 조회 (sysdb계정에서 해야한다.)
EXEC dbms_stats.gather_schema_stats(ownname='HR')
- 비용 기반 옵티마이저에서는 캐싱 효과를 고려하지 않는다.
- 비용 기반 옵티마이저 내부적으로는 규칙을 사용한다.
'SQLP' 카테고리의 다른 글
[SQLP] 인덱스 (INDEX) (0) | 2024.07.27 |
---|---|
[SQLP] Hint 실습 (0) | 2024.07.27 |
[SQLP] Hint (1) | 2024.07.26 |
[SQLP] 실행 계획 (Execution plan) (0) | 2024.07.22 |
[SQLP] Selectivity & Cardinarity (1) | 2024.07.21 |