ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL] SGA란?
    프로그램/SQL 2024. 6. 11. 00:31

     

     

    | SGA(System Global Area)란?

     

    • 데이터베이스에서 사용되는 공유 메모리 영역
    • 여러 프로세스가 공유하여 사용하며, 데이터베이스 운영에 필요한 데이터를 저장하고 관리
    • 찾으려는 자료가 저장되어 있는 경우, 즉 적합한 캐시가 있는 경우 프로세스의 I/O 입출력을 줄여 성능을 높일 수 있음

     

     

     

    | SGA 동작 원리(단순 윈리)

     

    SGA는 공유 메모리로 여러 프로세스(실행중인 프로그램)들이 정보를 공유한다고 보시면 쉽습니다. 이러한 SGA를 간단한 예를 통해 설명 드리며, 실제 복잡한 동작에 비해 많이 생략되었음을 말씀드립니다.

     

     

    1. 통로가 좁아 DB에 입장할 수 있는 사람은 1명으로 제한되어 있으며, A(정보 1,2,3을 원함)와 B(정보 2,3,4를 원함)가 DB에서 정보를 찾아서 나오고 싶어합니다.

    2. A는 DB에 들어가기 전 SGA에서 정보를 찾습니다.

    3. SGA에 찾고자하는 정보가 없어, DB에 들어가 정보 1, 2, 3을 찾아서 나옵니다.

    4. A는 가져온 정보들을 SGA에 기록하고 떠납니다.

    5. B는 A가 나오고 SGA에서 정보를 찾습니다.

    6. SGA에 정보 2와 3이 있는 것을 확인하고, DB에 들어가 정보 4를 찾아서 나옵니다.

    7. B는 SGA에 정보 4를 기록하고 떠납니다.

     

    이 외에도 SQL문을 저장하거나, DB 객체 정의, 변경 사항 등을 SGA에 저장해 효율을 높입니다.

     

     

     

     

     

    | SGA 구조

     

    위에서 살펴본 정보는 SGA 중 DB Buffer Cache 영역에 저장되는 내용으로, SGA를 이루는 구조는 크게 'DB Buffer Cache', 'Redo Log Buffer', 'Shared Pool' 세 가지로 설명하겠습니다. 각 영역만 해도 별도의 여러 개의 포스팅이 필요할 정도로 내용이 많으나, SGA에 초점을 맞추어 간단히 설명하도록 하겠습니다.

     

     

     

    <SGA 구조>

Designed by Tistory.