본문 바로가기
ORACLE/ADMIN

[ORACLE] Data Dictionary Cache 역할

by 🌻♚ 2020. 7. 5.

Data Dictionary Cache

Data Dictionary Cache는 Data Dictionary Object 정보를 저장하는 공간이다.

사용자가 SQL Query를 질의 했을 때 Parsing 작업을 합니다. Library Cache에 해당 Query가 존재하지 않아 HardParsing 작업을 할 때 Semantic Check 작업을 통해 Query에서 사용한 테이블이나 칼럼 혹은 사용자의 권한을 확인하는 작업을 진행합니다. 이때, 테이블에 대한 정보나 사용자의 권한은 어디서 참조를 할까요?

 

이러한 정보들은 물리적으로는 SYSTEM Tablespace에 저장되어있습니다. SQL 문장에서 DataDictionary의 Object가 참조되면 Database Buffer Cache를 지나 Data Dictionary Cache로 로딩됩니다.

 

Data Dictionary Cache 성능

Data Dictionary Cache를 사용함으로써 데이터 처리에 대한 효율을 얻을 수 있습니다. Data Dictionary Cache에 로딩된 이후로 디크스에 저장된 Data Dictionary의 정보에 대한 I/O가 발생하지 않고 바로 메모리 영역에서 읽어 사용할 수 있어 보다 효율적인 데이터베이스 관리가 가능해집니다.

 

Data Dictionary Hit Ratio

Data Dictionary Cache에서 데이터를 읽어들인 비율을 Hit Ratio로 표현합니다. Parse 작업에서 Data Dictionary에 대한 데이터를 요구 했을때 Cache에서 읽은 횟수(GETS)와 Cache에 없어 I/O를 진행했을 때(GETMISSES)의 값을 비율을 V$ROWCACHE View를 통해 산출하여 확인할 수 있습니다.

SELECT
	(
	1-(SUM(GETMISSES)/SUM(GETS))
	) * 100 "RATIO"
FROM V$ROWCACHE;

Data Dictionary Cache의 Hit Ratio는 90% 이상을 유지하는 것이 바람직하다고 합니다. 하지만, instance 기동 직후에는 Data Dictionary Cache에 Data가 많이 저장되어 있지 않아 기동 후 측정은 정확하지 않을 수 있습니다.

 

 

Data Dictionary Cache 정리

- Data Dictionary에 대한 정보를 저장

- Parse 작업할때 I/O 발생하지 않고 바로 Data Dictionary Cache에서 읽을 수 있음

 

댓글0