Ch2. 오라클 인스턴스(Instance)

이기현·2020년 12월 29일
0

Oracle

목록 보기
2/39

1. SGA(System Global Area)

  • 공유풀
    - Library cache
    • data Dictionary chache
    • Result cache
    • Reserved pool
  • Database Buffer cache
  • Redo log buffer

1. Library cache

사용자가 sql문을 입력하면 오라클 내부적으로 해당 문장들에 대한 Parse과정을 수행한다.
step1. SQL 문장이 메모리에 로딩
step2. SQL 문장, 문법확인
step3. Semantic 확인
step4. 쿼리 변환 - 내부적으로 효율적인 sql문으로 변환
step5. 실행 계획 생성(Optimizatio

  • 파스 과정이 완료되면 파스된 SQL 문장들과 그들의 실행 계획이 Library cache에 저장됨

2. Data Dictionary cache

파싱 과정 가운데 참조된 데이터 딕셔너리 오브젝트 정보를 저장하는 공간
( 객체권한,객체구조,데이블,뷰,인덱스 등)

3. Database buffer cache

사용자들의 쿼리나 DML를 실행하게 되면 결과값을 가지는 오라클 블록을 데이터 파일로부터 물리적으로 읽어들여서 복사본을 database buffer cache에 저장하게 된다.

  • databas buffer cache는 내부적으로 Hash Table 구조로 관리된다.
  1. 오라클 블록의 주소값(DBA = Data Block Address)를 Hash함수에 input으로 주게되면 해당 hash value가 나오게 된다.
  2. 이 값을 가지고 Hash bucket을 스캔하며 해당 hash value를 가지는 hash bucket을 찾는다.
    3.bucket 내부에 체인 방식으로 연결된 buffer header들을 처음부터 스캔을 하면서 해당 블록을 찾는다.

    4. Redo log buffer

    DML,DDL 등의 문장에 의해서 데이터베이스의 값, 구조가 변경되면 이러한 변경정보를 저장하는 메모리 영역이다.

2. PGA(Program Global Area) & UGA(User Global Area)

UGA = 정렬공간 + 세션정보 + 커서정보

정렬공간(Work Area,Sort Area) - 정렬작업을 수행하기 위해 사용되는 공간
ex) Order by, Group by Distinct, Union ...
세션정보 - 사용자 세션정보를 저장하는 공간
커서정보 - SQL문장 파싱정보를 저장하는 커서의 주소를 저장하는 공간

PGA = UGA + 변수 저장공간(Stack Space)

문장내에서 바인드 변수를 사용하는 경우 해당 변수값을 저장하는 공간

profile
실력을 쌓아가는 하루하루

0개의 댓글