반응형

 

- segment : 저장공간을 가진 Object 

ex) table, index <-> view

- extent : 공간의 단위, 연속된 Block 의 집합

- block : I/O 의 최소 단위

 

오라클 Record 는 가변! 

* Block 은 아래서부터 데이터가 생긴다.

- Row Directory : block 의 위치를 알려주는 Pointer

=> 모든 데이터 파일, 파일에 고유한 번호를 붙인다.  

=> Row ID 구성요소 : 데이터 파일 번호, 데이터 파일 내 Block 의 번호, Block 내의 Record 번호 

    (Record와 Row는 동일한 개념) 마치 컬럼과 필드가 같은 개념인 것처럼... 

 

* SELECT 되는 구조 

Server Process 는 SQL을 3단계에 거쳐 처리한다.

=> Parsing(Semantic Check, semantic check, Execution Plan 수립(옵티마이저가 수행)), Execution, Fetch

    * 옵티마이저 :  SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진

 

* Index Scan 및 Full Table Scan 의 특징

- Index Scan : One Block I/O (데이터의 Row ID를 알기 위해 Index를 사용한다) , 2차 검색, Random Access

- Full Table Scan : N block I/O (DBA가 Setting 하기 전에는 기본적으로 N = 16, 한번에 여러개를 읽는다), 1차 검색, Sequential Access

=> WHERE 절이 있는 모든 쿼리는 Index Scan, Full Table Scan 이 적용된다.

 

- Logical Read  : 메모리에서 읽어오는 것 (메모리상에 내가 필요한 데이터가 존재할 경우 Cache hit / 없을 경우 Cache miss)

- Physical Read : 파일 또는 디스크에서 읽어오는 것 (데이터 파일), Block 을 통째로 읽어오는 것

  ※ CPU는 DISK 에 있는 데이터를 수정할 수 없다. Memory 로 올라와야 CPU 로 가져와서 연산 가능하다. (이건 컴퓨터 구조의 내용임)

 

따라서 동일한 데이터를 2번 보거나 이미 메모리에 올라와있는 데이터를 실행할 경우에는 Soft Parsing 및 Logical Read 를 하기 때문에 빠르게 실행된다.

 

* Block 사용의 효율성

빈번한 DELETE 나 UPDATE 가 발생할 경우 Block 의 빈 공간이 생기게 되면 바로바로 채워지지 않는다. 

Block 안의 공간활용도가 떨어지면, Disk 저장공간의 낭비뿐만 아니라 전체 컴퓨터 Resource 를 많이 사용하게 된다.

따라서 테이블과 인덱스의 Reorganization (재구성)이 필요하다. (보통 대기업에서 함)

=> Reorganization 란 block 의 빈공간이 생기지 않도록 비어있는 Block 들을 모아 촘촘히 채워준다.. 

 

모든 DBMS 는 뭔가를 변경하기전 Redo(Recovery), Undo(Rollback 명령어) 안전장치를 한다. 

commit이 완료되었다는 뜻은.. 변경된 Block을 write 하기엔 성능상의 문제 발생으로 Redo Log Buffer Cache File(메모리상 존재) 을 Redo Log File(디스크상 존재) 에 바로 덤프하는 것 => 속도가 빠름

 

* Log Switch => https://m.blog.naver.com/siamsunset0/130180543865

* SCN(System Change Number) : DBMS 상에서 변경될 때 마다 SCN 번호를 증가시킨다.

 

Rollback 의 근본원리 찾아보기 ! 

 

DBA_  : DBMS 내에 존재하는 모든

ALL_   : Accessible 가능한 거 모든 

USER_ : User 가 소유한 모든 

참고 : https://runtoyourdream.tistory.com/145

 

DESC DICT

SELECT * FROM DICT; 

=> DICT에서 PARTITION 관련 System Catalog 정보 조회 

=> DICT에서 SQL 관련 System Catalog 정보 조회 

 

* 오라클 12c 신개념

- CDB : 하나의 DB를 컨테이너로 보고 그 컨테이너를 담을 수 있는 DB
- PDB : CDB에 끼워넣을 수 있는(Pluggable) DB 즉, CDB안에 있는 DB

 

 

 

 

index 아키텍처는 마지막 시간에... 

 

참고하기 좋은 사이트

1. https://jeong-pro.tistory.com/147

2. https://asktom.oracle.com/pls/apex/f?p=100:1000

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기