FULL TABLE SCAN
: 테이블에 할당된 첫번째 블록부터 HWM 아래의 모든 블록을 읽음
: 1회의 I/O에 대해서 여러 개의 블록을 읽음
: DB_FILE_MULTIBLOCK_READ_COUNT 파라메터로 한 번에 읽어야 할 블록의 개수를 지정
SELECT NAME, VALUE, ISSYS_MODIFIABLE FROM V$PARAMETER
WHERE NAME = 'db_file_multiblock_read_count';
NAME VALUE ISSYS_MODIFIABLE
db_file_multiblock_read_count 128 IMMEDIATE
=> 1회의 I/O 당 128개의 블록을 읽음, 시스템과 OS 따라 달라짐
=> ISSYS_MODIFIABLE=IMMEDIATE 재기동 없이 바로 적용 가능,
* 재기동 없이 바로 적용이 가능하지만, 해당 수치를 늘리게 될 경우, 기존에 Index 를 타던 SQL이 FULL 로 바뀌는 경우가 발생 할 수 있으므로 충분한 테스트 후에 변경해야함
실습)
- 실습계정 tuning 로그인 하여 아래와 같이 실행
select /*+ gather_plan_statistics */ * from PRODUCTS;
PLAN 확인
select * from table(dbms_xplan.display_cursor(null,null,'TYPICAL ALLSTATS LAST'));
SQL_ID 14xd1av5tdc8f, child number 0
-------------------------------------
select /*+ gather_plan_statistics */ * from PRODUCTS
Plan hash value: 1954719464
---------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time | A-Rows | A-Time | Buffers | Reads |
---------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | | | 96 (100)| | 1000 |00:00:00.01 | 345 | 335 |
| 1 | TABLE ACCESS FULL| PRODUCTS | 1 | 1000 | 20000 | 96 (0)| 00:00:01 | 1000 |00:00:00.01 | 345 | 335 |
---------------------------------------------------------------------------------------------------------------------------------
=> PRODUCTS 테이블을 FULL SCAN 한 결과, 1000건의 ROWS 와, Buffer 345개를 사용한 것을 확인 할 수 있다.
'Oracle > 튜닝' 카테고리의 다른 글
INDEX UNIQUE SCAN (0) | 2022.02.10 |
---|---|
B-Tree 인덱스 구조 (0) | 2022.02.10 |
실행계획 순서분석 (0) | 2022.01.28 |
DISPLAY_CURSOR (0) | 2022.01.28 |
CBO, 테이블 통계, 인덱스 통계 (0) | 2022.01.28 |