DBDBDEEP
[친절한 SQL] 1.3.5 논리적 I/O vs 물리적 I/O 본문
논리적 I/O
SQL을 처리하는 과정에 발생한 총 블록 I/O.
- 일반적으로 메모리상의 버퍼 캐시를 경유하므로 메모리 I/O가 곧 논리적 I/O라고 생각해도 무방함.
- 논리적 I/O는 메모리 I/O와 Direct Path I/O를 더한 개념
* Direct Path I/O : 메모리를 경유하지 않고 바로 DISK를 Read 하는 I/O
물리적 I/O
- DB 버퍼캐시에서 블록을 찾지 못해 디스크에서 읽은 블록 I/O가 물리적 I/O.
BCHR
BCHR = ( 캐시에서 곧바로 찾은 블록 수 / 총 읽은 블록 수 ) X 100
= ( 논리적 I/0 - 물리적 I/0) / 논리적 I/0) X100
= ( 1 - 물리적 I/0) / 논리적 I/0) ) X 100
논리적 I/O 값 안에는 물리적 I/O 값도 포함되어 있다.
즉, 논리적 I/O를 줄임으로써 물리적 I/O를 줄이는 것이 곧 SQL 튜닝

QUERY / CURRENT : 버퍼캐시에서 읽은 값.
DISK : 디스크에서 읽은 값 (그러나 버퍼캐시에 올린다음 버퍼캐시의 것을 읽는 다는 것을 인지하자.)
* 참고사항
| SELECT문은 Consistent 모드로 블록을 읽는다. DML문은 Consistent 모드로 블록을 읽고 Current 모드 로 블록을 다시 읽어서 갱신 |
( 1 - (601,458 / (1,315,677 + 12,367) ) ) * 100
'친절한 SQL 튜닝' 카테고리의 다른 글
| 2.1.5 결합 인덱스 구조와 탐색 (0) | 2026.05.16 |
|---|---|
| 2.1.3 인덱스 수직/수평적 탐색 (0) | 2026.05.16 |
| 1.3.6 Single Block,Multi Block I/O (0) | 2026.05.16 |
| [친절한 SQL] 1.3.4 시퀀셜/랜덤 액세스 (0) | 2026.05.11 |
| [친절한 SQL] 1.1.5 옵티마이저 힌트 (0) | 2026.05.11 |