본문 바로가기

Database/이론

버퍼캐시 히트 레이트율

버퍼 캐시 히트율(Buffer Cache Hit Ratio)

  • 버퍼 캐시 효율을 측정하는 지표로써 전체 읽은 블록중 메모리 버퍼 캐시에서 찾은 비율
  BCHR = (버퍼 캐시에서 곧바로 찾은 블록 수 / 총 읽은 블록 수) × 100 
  -- BCHR은 주로 전체적인 관점에서 측정하지만, 개별 SQL에 대해서도 구해볼수 있으며,이 비율이 낮은것이 SQL 성능을 떨어뜨리는 주범임
  

 

call   count  cpu  elapsed disk query current rows 
------ ----- ----- ------- ---- ----- ------ ---- 
Parse     15  0.00    0.08    0    0      0   0 
Execute   44  0.03    0.03    0    0      0   0 
Fetch     44  0.01    0.13   18  822      0  44 
------ ----- ----- ------- ---- ----- ------ ---- 
total    103  0.04    0.25   18  822      0  44 
  • Disk 항목이 디스크를 경유한 블록수
    • 총 읽은 블록 수 = 822
    • 버퍼 캐시에서 곧바로 찾은 블록 수 = 822 - 18 = 804
    • CHR = (822 - 18) / 822 = 97.8%
  • 논리적인 블록요청 횟수를 줄이고, 물리적으로 디스크에서 읽어야할 블록수를 줄이는것이 I/O 효율화 튜닝의 핵심 원리

 

 

 

 

 

1. 블록단위 I/O

  • 데이터 파일에서 DB 버퍼 캐시로 블록을 적재할 때
  • 데이터 파일에서 블록을 직접 읽고 쓸때
  • 버퍼 캐시에서 블록을 읽고 쓸때
  • 버퍼 캐시에서 변경된 블록을 다시 데이터 파일에 쓸 때

2. 메모리 I/O vs. 디스크 I/O

가. I/O 효율화 튜닝의 중요성

  • 디스크를 경우한 데이터 입출력은 디스크의 액세스 암(Arm)이 움직이면서 헤드를 통해 데이터를 읽고 쓰기 때문에 느림
  • 메모리를 통한 입출력은 전기적 신호에 불과하기 때문에 디스크를 통한 I/O에 디해 비교할수 없을정도로 빠름
  • 모든 DBMS는 읽고자 하는 블록을 먼저 버퍼 캐시에서 찾고 ,없을경우에는 디스크에서 읽어 버퍼 캐시로 적재 후 읽기/쓰기 작업을 수행
  • 이러한 이유로 모든 데이터를 메모리에 올려놓고 사용하면 좋겠지만 메모리는 물리적으로 한정된 자원이므로
  • 결국 디스크 I/O를 최소화하고 버퍼 캐시 효율을 높이는것이 데이터베이스 I/O 튜닝의 목표

 

 

 


 

 

windows 관리도구에 성능 모니터를 켠다. 

 

 

 

 

빨간 X버튼을 누르고  초록색 +를 누르면 아래와 같은 창이 뜬다.

 

 

아래 cache bytes가 있지만 windows의 캐시이고 우리가 볼 것은 sql의 내용이므로 

다음 사진을 참고한다.

 

 

 

 

아래 개체 명에 위치가 써 있고 그 위치에서 카운터 명인것을 선택하면 된다.

 

 

 

 

스투디오에서 select을 돌렸을 때 히트 레이트율이 잠깐 내려가는 것을 확인한다.!!! 

 

Disk I/O는 덜 사용 함?

 

 

 

 

 

 

 

 

 


추가로 해보면 좋을 것...

'Database > 이론' 카테고리의 다른 글

실행계획(작성중)  (0) 2020.11.19
트랜잭션 로그백업  (0) 2020.11.19
데이터 베이스 구조  (0) 2020.11.18
DBCC 명령어  (0) 2020.11.18
buffer cache hit ratio 보는법  (0) 2020.11.18