새소식

반응형
Database/MSSQL Server

Buffer Manager/Buffer Cache Hit Ratio

  • -
반응형

오라클의 내용을 보고 이해 한 글이므로 사실과 다를수 있습니다. 

 

 

MS Server에 Cache Hit Ratio라는 항목이 있습니다. 이것은 간단히 말해서 캐쉬의 적중률로 알고 있습니다. (필자 생각) 

그런데 이게 높으면 왜 좋고 낮으면 왜 않좋은지 알고 싶어서 찾던 도중 좋은 글을 발견해서 이해 한 대로 설명하겠습니다. 

 



                                  

1. Database의 Buffe Cache는 Disk로 부터 읽어들인 Data block의 복사본을 가지고 있는 메모리 입니다.

 


 

2. 다음과 같이 Disk로 부터 파일을 읽어 들여서 Data Block의 복사본을 가지고 있는 메모리 입니다.

 


3. 다음과 같이 User Process가 요구한 사항을 Server Process 가 받아서

    DB Buffer Cache에서 Data를 찾게 될 시에 만약에 Data block1 을 찾을

    경우 cache hit 이며 Data block6을 찾을 경우 cache miss라고 합니다.

 

 

Cache Hit : User Process 가 요구하는 데이터 있을 경우

Cache Miss : User Process 가 요구하는 데이터 없을 경우

 

 

 

만약에 여기서 cache miss가 날 경우에는 다음과 같은 상황이 발생합니다.

 



다음과 같이 Server Process가 직접 Disk에 가서 필요한 Data를 찾은 후에 직접 DB Buffer cache에 올려 줍니다.

 

결국 위의 설명과 함께 보시면 Cache Hit Ratio 는 아주 간단 합니다. 즉 3번의 해당하는 그림(바로 Buffer cache에서 찾는거)에서 처럼

Disk 로 부터 Data를 읽어서 메모리에 올린 것이 아닌 DB Buffer Cache 에서 바로 읽혀진 비율을 말합니다.

 

 

 

 

 

 

* 그렇다면 이 비율이 높아야 한다는 이유는 뭘까요?

 

어떠한 시스템이든 Data를 읽는 속도는 Disk에서 읽는 것보다 Memory 에서 읽는 것이 빠릅니다. hit ratio가 높다는 말은 DISK/IO가 적다는 말이며 이는 실행 속도가 빠르다는 말 입니다.

 

 

* hit ratio 를 높이는 방법

 

SGA영역의 DB Buffer cache 를 크게 잡으면 hit ratio를 높일 수 있습니다. 이 경우 많은 Data를 Memory 에 올릴 수 있으므로 Disk를 직접

읽는 경우를 더욱 감소 시킬수 있기 때문입니다. 하지만 여기서 중요한것은 메모리를 크게 잡음으로 인해서 성능이 떨어 질수도 있습니다.

모든 상황은 그때 그때 다릅니다.

반응형

'Database > MSSQL Server' 카테고리의 다른 글

MsSQL_커서(Cusor)  (0) 2015.07.01
MSSQL_DB 자동증가확인  (0) 2015.07.01
MSSQL 옵티마이저(optimizer)  (0) 2015.06.27
MSSQL Server 설정  (0) 2015.06.25
MSSQL_테이블 복사,데이터 복사  (0) 2015.06.09
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.