데이터베이스 아키텍처를 분석하고 학습하다 보면 항상 데이터베이스 내부 구조에 대한 호기심이 생기게 마련이다. 이와 같은 데이터베이스 내부 아키텍처는 실제 업무를 수행하는 데 그다지 큰도움이 되지 않는다고 생각할 수 있다.
하지만 데이터베이스 내부 아키텍처를 정확히 이해한다면 데이터베이스에 문제가 발생하는 경우 정확하고 논리적인 분석이 가능하게 된다. 그렇기 때문에 데이터베이스를 확실하게 분석하기 위해서는 데이터베이스 Internal은 반드시 이해하는것이 유리하다.
이번 강의에는 데이터베이스의 SQL Parsing을 책임지는 Shared Pool에 대해 좀 더 자세히 확인해 보자
[그림 1]은 지난 시간에도 언급했던 것으로 오라클 Shared Pool의 전체적인 아키텍처를 보여준다. 이 그림에서 Shared Pool은 어떻게 작동 하는지를 지금부터 확인해 보자.
위와 같은 절차를 통해 SQL이 수행되면 해시 테이블을 검색해 기존에 수행된 SQL에 대한 정보 중 현재의 SQL과 동일한 SQL에 대한 핸들러가 존재하는지를 검색하게 된다.
검색해 존재하게 되면 해당 핸들러 정보를 이용해 Soft Parsing을 수행하게 되며 동일한 SQL에 대한 정보가 존재하지 않으면 해당 해시버켓에 해당 SQL에 대한 핸들러를 생성해 연결하게 된다.
이와같은 핸들러에는 Heap0 메모리에 대한 정보를 가지고 있으며 실제적인 Soft Parsing은 Heap0 메모리의 내용에 의해 수행된다.
핸들러는 다음과 같은 구성요소를 가진다.
핸들러는 위와같은 정보를 저장하고 있으며 앞서 언급한것과 같이 가장 중요한 요소는 Heap0 메모리에 대한 정보다.
Heap0 메모리는 [그림 2]와 같이 여러 개의 구성요소를 가지게 된다.
그럼 Heap0 메모리의 구성요소를 하나하나 확인해 보자
나머지 Heap0 메모리에 대한 구성요소는 다음에 언급하기로하자. 이처럼 Heap0 메모리는 Soft Parsing을 위해 매우 중요한 역할을 수행하게 된다
- 강좌 URL : http://www.gurubee.net/lecture/2697
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.