DB File Sequential Read  & DB File Scattered Read 

 

DB File Scattered Read 는 DB upgrade 되면서 자주나오는 wait event는 아니다 

Disk에서 cache로 데이터 가져올때 발생한다 

DB File Sequential Read 

자주 보이는 wait event

Random IO 할때 발생 - 정확하게는 Single Block Storage IO를 수행할 때 발생

 - Random IO는 대부분 Single Block  

 - Index 경유해서 table Random Access 할때 발생 (table 데이터를 순차적으로 접근하는게 아닌 random하게 접근함)

 대량 발생 시 OLTP 성능 저하시키는 주 원인이 된다 

 - OLTP는 대부분 Index를 사용하기 때문이다 (바라보는 데이터가 상대적으로 작다)

Index를 잘만들어야하는 이유이다 

이름이 왜 Sequential일까?

Index로 읽어서 Buffer Cache에 저장할때 Sequential 하게 보관된다 

DB 가 사용하는 CPU보다 Random IO wait으로 인한 CPU 사용이 많을 경우 튜닝이 

DB File Scattered Read 

index가 아닌 Full Scan할때 발생한다 

Multi Block Storage IO 수행시 발생

cache 로 가져올때   DB_FILE_MUTIBLOCK_READ_COUNT로 설정된 muti block을 한번에 가져온다  

11g부터는 full scan 이여도 큰 table이면 Direct Path Read로 읽기때문에 DB File Scattered Read는 발생하지 않는다  (buffer/cache에 올리지 않음)

이름이 왜 Scatterd일까?

- Block들이 Buffer Cache에 Scatterd 하게 저장이 된다 

왜 Sequential 하지 않고 Scatterd 하게 올리는 걸까?

 

 

인프런 - 권철민 강사님 자료 발췌

 

 

Full Scan 으로 buffer/cache에 올라온 데이터는 LRU에 마지막에 쌓이기 때문에 빠르게 aging된다  (Buffer Cache에 올라온 block들은 LRU List에서 MRU쪽이 아니라 LRU 쪽 Block에 쌓임 )