SQL Turning :: I/O 매커니즘
by 으렴
데이터 베이스의 저장구조 참고
(Table, Index)Block을 접근하는 방식.
1. Seqential Access 시퀀셜 액세스
논리적 또는 물리적으로 연결된 순서에 따라 차례대로 Block을 읽는 방식.
※ Oracle
segment에 할당된 extent 목록을 segment header에 Map으로 관리.
읽어야 할 extent 목록을 extent map에서 얻고 각 extent의 첫번째 블록뒤에 연속해서 저장된 블록을 순서대로 읽는다.
= Full Table scan
2. Random Access 랜덤 액세스
논리적 물리적인 순서를 따르지 않고 레코드 하나를 읽기위해 한 블록 씩 접근하는 방식.
Disk I/O가 SQL 성능을 결정.
Library Cache : SQL과 실행계획, DB 저장형 함수, 프로시저 등을 Caching하는 code Cache.
DB Buffer Cache : data cache. Disk에서 어렵게 읽은 data block을 caching해 둠.
- 반복적인 I/O call을 줄이는데 목적.
- data읽을 때 Buffer cache부터 탐색.
논리적 블록 I/O : SQL문을 처리하는 과정에 memory buffer cache에서 발생한 총 블록 I/O.
물리적 블록 I/O : 디스크에서 발생한 총 블록 I/O.
Buffer Cache Hit Ratio(BCHR) : 버퍼캐시 효율을 측정.
물리적 I/O가 성능을 결정하지만 실제 SQL 성능을 향상하려면 물리적 I/O가 아닌 논리적I/O를 줄여야 함.
물리적 I/O = 논리적 I/O x (100-BCHR)
논리적 I/O줄이는법 = 읽는 총 블록 개수를 줄이기.
물리적 I/O는 통제 불가능(외생변수) / 논리적 I/O는 통제 가능(내생변수)
'DATABASE > SQL' 카테고리의 다른 글
오라클 Oracle 11g 설치하기 (0) | 2019.07.03 |
---|---|
SQL JOIN 정리 (0) | 2019.06.17 |
SQL Turning :: SQL의 프로세스와 Database 저장구조 (0) | 2019.05.30 |
SQL Turning :: 공유와 재사용 (0) | 2019.05.29 |
SQL Turning :: SQL 처리 과정과 I/O (0) | 2019.05.13 |
사이트의 정보
코딩하렴
으렴