오라클 성능 고도화 원리와 해법 I (2016년-2)
DB 버퍼 캐시 0 0 4,324

by 구루비 Buffer Cache [2016.12.26]


(1)블록단위 I/O


오라클에서 I/O는 블록 단위로 이루어진다.
상단의 그림처럼 abc 란 값을 adc로 변경하고 싶을 때 b->d로 변경하는 것이 아니라
abc->adc 로 모두 변경하는것이다 a와 c는 변경전과 변경후가 차이가 없지만 덧씨워지는것이라고 생각하면 된다.

(2)버퍼캐시 구조

해시함수를 사용하여 사용자가 원하는 값을 찾을 때 가장 빠른 속도로 찾아갈 수 있게 설계되어 있다.

(3)캐시 버퍼 체인

(4)캐시 버퍼 LRU 체인

책에서는 컨테이너 벨트로 LRU 알고리즘을 설명했지만 컨테이너 벨트의 경우 단순한 선입선출 방식이며 오라클의 LRU알고리즘은 이와는 좀 다르다.
하나의 SQL이 실행될 때 그 실행된 횟수를 기준으로 많이 검색한 SQL 은 중요도가 높다고 생각되어 오랬동안 메모리에 남기며 실행된 횟수가 동일하다면 가장 나중에 실행된 SQL을 메모리에서 삭제하게된다. 1번 밖에 실행되지 않은 SQL 이 다시한번 실행되게 된다면 실행횟수 2가되어 2항목의 좌측 위치로 이동하게된다.

"구루비 DB 스터디 모임" 에서 2016년에 "오라클 성능 고도화 원리와 해법 I " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3137

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입