본문 바로가기

Oracle

(6)
Buffer Cache 와 Access 메커니즘 오늘은 SGA 컴포넌트 중 Buffer Cache에 대해서 단간한 메커니즘을 알아본다. 1. Buffer Cache 란? 2. DBA와 Hash Bucket 그리고 LRU 3. Buffer Cache Access 메커니즘 Buffer Cache 란? Buffer Cache는 SGA(공유메모리영역)의 한 부분으로 Storage I/O Access를 최소화 하고 특히 Random I/O 성능 영향을 최소화 하는 중요한 역할을 한다. 우리가 한번 사용한 디스크의 Data Block을 Buffer Cache에 올려놓고 같은 Block이 필요한 경우 디스크에 갈 필요없이 메모리에서 데이터를 바로 사용할 수 있다. ( SQL수행 속도에 가장큰 영향을 미치는 부분이 디스크 I/O 이기 때문에 이부분을 최소화 하는게 ..
Oracle SGA 와 PGA 개요 지난 시간에 정리한 오라클 아키텍처 구성요소 3대 필수 항목에서 SGA와 PGA의 개요만 살펴본다. 1. System Global Area Database Buffer Cache : Disk I/O의 영향도를 줄이기 위해 Data File 의 Data Block을 메모리에 가져다 놓는다. Shared Pool : SQL 및 SQL 실행계획을 공유해서 같은 SQL의 Parsing은 권한 확인만 수행 하도록 만들어서 실행 속도를 높이도록 만든다. ( Data Dictionary Cache 를 활용해서 실행계획을 만들고 저장해서 공유한다. ) Redo Log Buffer : 데이터 변경사항 ( DML 발생시) 정보를 가지며 Redo log file에 Write 되기 이전에 Memory에 먼저 Write 되는 ..
오라클 데이터베이스 아키텍처 Oracle Architecture 3대 필수 항목은 프로세스, 메모리, 데이터파일이 있고 오늘 포스팅은 3대 항목의 종류에 대해서 정리하고 마지막으로 DB에 접속하고 SELECT SQL의 실행 동작을 살펴본다. 오라클 아키텍처 구성요소 3대 필수 항목 1. 프로세스 종류 User Process : 우리가 SQL을 작성하기 위해서 Orange , Sqldeveloper 툴로 연결하거나 JDBC와 같은 애플리케이션에서 연결하는 프로세스를 말한다. Oracle Server Process : User Process 가 Listener에 접속을 하고 이때 접속에 성공하면 Oracle Server Process가 하나 생성된다. 쉽게 생각해서 User Process와 Oracle Server Process는 1:..
Oracle Data Dictionary 란?? Data Dictionary 데이터 사전(Data Dictionary)이란 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공 한다. 오라클 데이터베이스는 명령이 실행 될 때 마다 데이터 사전을 Access 한다. DB작업동안 Oracle은 데이터 사전을 읽어 객체의 존재여부와 사용자에게 적합한 Access 권한이 있는지를 확인 한다. 또한 Oracle은 데이터 사전을 계속 갱신하여 DATABASE 구조, 감사, 사용자권한, 데이터등의 변경 사항을 반영 한다. ​ Data Dictionary 에는 DB를 구성하는 모든 요소에 대한 정보를 가짐. - 오라클의 사용자 정보 - 오라클 권한과 롤 정보 - 데이터베이스 스키마 객체(TABLE, VIEW, INDEX, C..
Sequential Access & Random Access 비교 ​ Sequential Access 논리적 또는 물리적으로 연결된 순서에 따라 순차적으로 Block을 읽는 방식. 근데 Block간에는 서로 연결되어 있지 않다고 하는데... 그러면 다음 Block을 어떻게 알고 순차 적으로 읽을 수 있을까?? 답은 어제 정리한 Sagment 에 있다. (잘 기억이 나지 않는다면 ... 어제 정리한 Data Block과 Clustering Factor의 이해 를 보자.) Sagment Header 에 Extent정보를 Map 으로 가지고 있고 해당 Extent의 첫 Block부터 연속해서 읽게되면 위에서 설명 한 Sequential Access 가 가능하게 되는 것 이고 이러한 방식을 Full Table Scan 이라고 한다. ​ Random Access 어떤 파일내에 ..
Data Block과 Clustering Factor의 이해 Data Block 이란? - Oracle DB에서 데이터 검색과 저장의 가장 기본 단위로서 (8K, 16K, 32K, 64K) 단 하나의 레코드를 읽더라도 최소 1 Block은 Access 해야된다. ​ Segment, Extent, Data Block Segment, Extent, Data Block ​ ​ Clustering Factor Index key Column 을 기준으로 데이터들이 얼마나 잘 정렬 되어 있는지를 나타내는 수치 예) 메모리에 단 하나의 Bloc만들 담을 수 있고 이때 Index scan 시 테이블 블록의 access 횟수 아래 그림은 공부하고 있는 강의 자료에서 보여주는 그림이다 (Good / Bad Clustering Factor 비교) Good / Bad Clusterin..