Buffer cache 동작원리(select)

Slides:



Advertisements
Similar presentations
안성필 내부구조. Oracle 이란 ? Oracle 사가 만든 DBMS 의 한 종류로 Database 에서 가장 많이쓰이는 프로그램 검색 · 갱신용 언어로는 국제 표준화 기구 (ISO) 에 서 표준화한 구조화 조회 언어 (SQL) 가 표준.
Advertisements

Copyright © 2005, Oracle. All rights reserved Oracle Structures.
Make a Real DBA 오라클 저장 영역 구조 ㈜ 신한시스템즈 김 종 근김 종 근 김 종 근김 종 근.
Oracle DB 구조 및 트랜잭션 관리 이경화 Database 의 구조 Program Global Area (PGA) Instance Database Buffer Cache Redo Log Buffer Library Cache Shared.
1 Orange Part II WareValley. 2 Loader Tool 3 Loader Tool 실행.
리눅스 커널의 이해 중에서 14장. 디스크 캐시 남재준 네트워크 실험실.
UNIX 운영 체제의 설계 - Chapter 4. 파일의 내부 표현
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
1. 개발 시스템 개요.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
제14장 동적 메모리.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
AWR DB 보고서 분석.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Practical Internals in Oracle 11g Result Cache
MySQL 및 Workbench 설치 데이터 베이스.
Make a Real DBA 오라클 데이터베이스 관리시스템 아키텍처 ㈜ 신한시스템즈 김 종 근.
5장 Mysql 데이터베이스 한빛미디어(주).
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express Slide 1 (of 13)
ATMEG2561 & TFT-LCD를 이용한 MOBILE DEVICE 구현
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SELECT empno, ename, job, sal, dname FROM emp, dept
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
DK-128 ADC 실습 아이티즌 기술연구소
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
Power Java 제14장 배치 관리자.
프로그래밍 랩 – 7주 리스트.
MicroC/OS-II 3. Memory Management ITISN Technical Lab.
5장 Mysql 데이터베이스 한빛미디어(주).
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
IPAD2(ios 5.0.1) 사용자 메뉴얼 Mobile Service Team.
자바 5.0 프로그래밍.
JDBC Lecture 004 By MINIO.
27장. 모듈화 프로그래밍.
메모리 관리 & 동적 할당.
Smart Workplace 개발자 가이드
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
27강 JAVA Collections - II - Map계열 컬렉션 클래스 살펴보기 - Set계열 컬렉션 클래스 살펴보기
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
CHAP 21. 전화, SMS, 주소록.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
( Windows Service Application Debugging )
데이터 동적 할당 Collection class.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
STS 에서 웹 서버 설치 방법.
오라클 11g 보안.
13주 실습강의 학기, 소프트웨어 설계 및 실험(Ⅰ).
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
System Security Operating System.
9 브라우저 객체 모델.
동적메모리와 연결 리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
Power Java 제14장 배치 관리자.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
 6장. SQL 쿼리.
Reversing 발표자 : 박현우.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
C++ Espresso 제15장 STL 알고리즘.
fastestslowest 실제 질의문에서 사용 타입 추천 인덱스 SELECT list Default
Presentation transcript:

Buffer cache 동작원리(select) 3. 실행 계획 생성 Select 4,5,6,7,8 from sj 7. 결과 전송 client Server process Buffer cache 1 2 3 4 5 6 7 8 Log Buffer Shared pool 1. SQL 요청 Library cache 4. Block 탐색 6. Block 읽음 Row cache Datafile 5. Block 로드 (I/O 발생) 2. 구문 검사, 문법 검사 8

Data buffer, cache buffer chain latch hash chain LRU cahin 의 정보 SGA 에 있는 cache 된 Data 블록을 찾을때 획득하는 래치 Hash chain 하나의 해쉬 버켓에 연결된 Header의 집합 Bucket 해쉬함수를 통해 그룹핑된 헤더목록을 관리 LATCH 1 bucket B.H B.H B.H bucket B.H B.H B.H bucket B.H B.H B.H Buffer header Data buffer, cache buffer chain latch hash chain LRU cahin 의 정보 실제버퍼캐쉬의 포인터 정보 LATCH 2 bucket B.H B.H B.H B.H B.H B.H bucket #LRU list main : 사용된 buffer들이 대한 list(used list). touch count 알고리즘을 쓰기 때문에 hot영역과 cold 영역으로 나뉜다. sub : free buffer list. 먼저 확인하는 부분. 확인이 안되면 main으로 올라가서 lru end에 저장   # LRUW list(dirty list) main : 변경된 buffer list. sub : 현재 dbwn에 의해 기록중인 buffer list B.H B.H B.H bucket LRU Work set LRUW

2. Cache buffer chain latch 획득 5. Cache buffer lru chain latch 획득 사용자가 요청한 블록의 DBA와 클래스에 대해 해시 함수를 이용해서 해쉬 값을 생성하고, 해시 값에 해당하는 버킷을 찾는다 *요기서 버퍼락을 획득하는과정에서 경합이 생기면 buffer busy wait 이벤트로대기 LATCH 1 4. Buffer를 사용하기 위한 buffer lock 획득 3. 해당버퍼가 존재하는 해쉬체인을 탐색 bucket B.H B.H B.H bucket B.H B.H B.H 2. Cache buffer chain latch 획득 bucket B.H B.H B.H 5. Cache buffer lru chain latch 획득 LATCH 2 bucket B.H B.H B.H B.H B.H B.H bucket B.H B.H B.H bucket 프리블럭이 있으면, 데이터파일에서 해당블록을 해당 버퍼로 읽이들인다 만약 버퍼캐쉬블럭에 존재하지않으면 work set 을 관리하는 cache buffers lru latch를 획득,경합이 발생하면! 보조리스트를 통해 프리버퍼가 있는지 찾는다 LRU Work set LRUW 더티버퍼 확인

HOT : 사용 빈도가 높은 블럭 COLD : 사용빈도가 낮은 블럭 MRU LRU (HOT) (COLD) MID POINT 인영의 touch count는 0으로 초기화 나 머리 나 꼬리 MRU (HOT) 나 머리 해더위치로 위치 버퍼캐쉬에머무를확률이 높아진다. LRU (COLD) 프리리스트를 찾는 중 꼬리에 Touch count 가 1 이하인 신애가 있으면 FREE Buffer로 사용 꼬리로 위치 버퍼캐쉬에머무를확률이 낮아진다. (인덱스 풀스캔 / 테이블풀스켄) MID POINT 프리리스트를 찾는 중 꼬리에 Touch count 가 2 이상인 인영이가 있으면 Hot 영역의 해더로 이동 삽입 Touch count :1 세팅 Lru 보조리스트에서 프리공간이 비어있으면 메인리스트의 콜드영역 꼬리에서부터 찾는다 삽입 LRU LIST 싱글 I/O 에 의해 읽혀진 블록 더블 I/O 에 의해 읽혀진 블록

Linked list 구조 Session 이나 call 동안에만 객체저장 Session 이 금방 끊어질수있어 사용할 대상이 아님 영구적인 객체를 저장 , 사용 할수없다 즉시 사용 가능 (freelist 에서 관리) Linked list 구조 재생성이가능한 상태 (lru list 에서 관리) Large chunk 를 위해 할당된 공간 Parameter를 설정해주지 않았다면 Shared pool의 5% 가 default로 갖는다

A,B user 각각 Select * from emp; 라는 쿼리를 전송했을 경우 이런 구조가 된다 그래서 dependency table에는 A 의 경우 a.emp table의 LCO를 참조 B의 경우 b.emp table의 LCO를 참조 이 참조 과정에서 handle의 lock hold/wait list, pin hold/wait list를 이용하게 된다