오라클 db = SGA + PGA + background process(RECO, PMON, SMON, DBWn, LGWR, ARCn, ...)
1. SGA = DB가 작업을 하기 위한 총체적인 메모리 영역. 사용자의 CRUD를 저장장치에 바로 실행할 수 있다면 필요없다. 그러나 DB에게 요구되는 ACID를 만족하려면, 이러한 작업을 해주는 메모리 영역이 필요할 것이다. 특히, consistent mode / transaction 중도 실패 시 undo / SQL 구문 재사용 / execution plan 생성 등과 같은 유용하고 필수적인 기능을 구현하려면 메모리 공간이 꼭, 많이 필요하다. 이런거 안쓰면 그냥 sqlite 같이 파일 하나 사용하는 DB를 만들 수는 있을 것이다.(sqlite 제작의 고충이나 내부 구조는 모르지만 일단 기능만 따지자면 그렇다는 말이다)
2. PGA = 유저별 개별 할당되는 메모리 공간. PGA도 물론 중요하지만, SGA가 DB의 몸체라고 볼 수 있다. 또한 구현에 따라 달라질 수 있으므로 PGA는 나중에 설명할 예정이다.
3. b.p. = 각자 맡은 역할을 SGA로부터 데이터를 받아서 실행한다. 예를 들어, LGWR는 redo log를 받아 쓴다. 이 또한 나중에 설명 예정.
'Oracle DB' 카테고리의 다른 글
DB에 redo log가 필요한 이유 (0) | 2020.04.06 |
---|---|
SGA - DB buffer cache (0) | 2019.09.03 |
SGA - large pool, java pool, fixed SGA (0) | 2019.09.03 |
SGA - shared pool (0) | 2019.08.31 |
참고 사이트 (0) | 2019.08.18 |