2009년 7월 7일 화요일

[DB] SGA

1. System Golbal Area

 : SGA는 Oracle Server가 Startup 될 때, Computer Memory 영역에 할당되고, Dabase가 Shutdown 될 때
   Memory에서 제거 된다.

SGA_Full2.jpg

이미지출처 : www.mbjconsulting.com


◆ Shared Pool : Library Cache + Data Dictionary Cache
    : 가장 최근에 실행된 SQL 문장과 Database의 Table 및 Object, User등 많은 정보를 저장.
◆ Database Buffer Cache : 가장 최근에 사용된 Data를 저장.
◆ Redo Log Buffer :
Database에 가해진 변경 사항 기록.


2. Shared Pool 

 (1) Library Cache : SQL TEXT, Parsing된 형태, RDBMS에 의해 제시되는 SQL구문의 실행 계획과 실행되는
                                    PL/SQL PACKAGE(패키지)와 Procedure(프로시저)를 저장합니다.
 (2) Data Dictionary Cache : 참조되는 Database의 모든 정보와, Architecture, User등이 정의된 모든 Table과
                                                   View들의 집합.

 ※ Shared Pool의 크기는 Oracle의 환경변수 File인 Parameter File에 지정된 값으로 결정.
     shared_pool_size는 Shared Pool의 크기를 결정하는 Parmeter.

2-1. Library Cache 
 : User가 요청한 Query문장을 Server Process가 여러 단계를 처져 작업하게 될 때, 사용하는 작업 공간.
   문자의 Text, Parse Tree, Execution Plan등을 저장.
   SQL문장 하나를 실행시마다 사용된 SQL문장이 저장.
   User가 이전과 동일한 SQL 문장을 길행하면 Parse Time을 줄여주며 성능을 향상 시킴.

 ※ 동일한 문장
     - 대소문자, 공백 등을 포함하여 문자열이 동일한 경우
     - 참조된 Object가 동일한 경우
     - 변수의 유형과 이름이 동일한 경우
     - User(Schema)도 동일한 경우
     즉, 100% 같은 문장만이 동일한 문장으로 인식 된다.

2-2. Data Dictionary Cache
 : Query문의 Table, Column의 정보, User Privilege등을 Server Process가 참조하는 영역

 (1) Data Dictionary Cache에 저장된 정보
    - Database에 존재하는 Table과 View의 이름
    - Table의 Column명과 Data Type
    - 모든 User의 정보와 Privilege를 저장하는 Table과 View 
 
 (2) Data Dictionary Cache에 저장된 내부 정보 구분 하기
    - User_ : 현재 User가 소유한 Object에 대한 정보
    - ALL_ : 현재 User가 Access 할 수 있는 Object에 대한 정보
    - DBA_ : DBA만이 접근 가능한 VIEW로 Database의 모든 정보를 제공
    - V$ : Database내부의 Architecture 및 성능정보를 보는 Dynamic Performance View(동적성능 뷰)

    ex) SQL> SELECT object_name
                   FROM user_object;
         SQL> DESC user_objects => sql +에서 하세요~

==============================================================

댓글 없음:

댓글 쓰기