코딩하렴

SQL Turning :: I/O 매커니즘

by 으렴

데이터 베이스의 저장구조 참고

 

SQL Turning :: SQL의 프로세스와 Database 저장구조

SQL은 I/O때문에 느리다. DISK I/O가 SQL성능을 좌우. Process : 실행 중인 프로그램. 실행중인 프로세스는 interrupt에 의해 수시로 실행준비(Runnable Queue) 상태로 전환했다 다시 실행상태로 전환. 여러 프로..

ryeom2.tistory.com

(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 blockcaching해 둠.
 - 반복적인 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

사이트의 정보

코딩하렴

으렴

활동하기