2024. 7. 10. 19:35ㆍDBMS/ORACLE Admin
데이터 딕셔너리 캐시(Data Dictionary Cache)
Oracle 데이터베이스의 성능을 최적화하고 데이터베이스 오브젝트에 대한 참조를 효율적으로 처리하기 위해사용된다.
SQL 문장이 파싱될 때 참조된 데이터 딕셔너리 오브젝트 정보를 저장하는 시스템 테이블과 뷰의 집합으로 테이블, 뷰, 인덱스, 사용자 정의 오브젝트, 권한, 역할 등의 정보가 포함된다.
작동 원리
사용자가 SQL 문장을 실행하면, Oracle 데이터베이스는 해당 SQL 문장을 파싱할 때 데이터 딕셔너리로부터 필요한 정보(객체의 권한, 구조 등)를 참조하며 참조된 데이터 딕셔너리 오브젝트 정보는 데이터 딕셔너리 캐시에 저장된다.
사용자가 SELECT * FROM scott.emp 명령을 실행할 때, 해당 SQL 문장의 파싱 정보는 라이브러리 캐시(또는 Row Cache) 영역에 저장되고 데이터 딕셔너리 캐시에는 scott.emp 테이블과 관련된 메타데이터가 저장된다.
데이터 딕셔너리 캐시(Data Dictionary Cache) 사용의 효율성과 잠재적 경합
SQL 문장이 처음 실행될 때, 필요한 데이터 딕셔너리 오브젝트 정보가 디스크에서 읽혀 데이터 딕셔너리 캐시에 저장된다. 이후 동일한 데이터 딕셔너리 오브젝트 정보가 필요할 때는 디스크에서 다시 읽지 않고, 메모리 내 데이터 딕셔너리 캐시에서 직접 가져온다.
잠재적 경합 문제
데이터 딕셔너리 캐시는 여러 프로세스가 동시에 접근할 때 경합이 발생할 수 있기 때문에 Row Cache Lock 메커니즘을 사용한다.
Row Cache Lock 데이터 딕셔너리 캐시의 특정 오브젝트 정보를 보호하기 위해 다른 프로세스가 동일한 오브젝트에 접근하는 것을 일시적으로 제한하여 데이터의 일관성을 유지한다.
다.
'DBMS > ORACLE Admin' 카테고리의 다른 글
Flashback Database (0) | 2024.07.11 |
---|---|
Result Cache (0) | 2024.07.11 |
Oracle Session (0) | 2024.07.10 |
Library cache (0) | 2024.07.10 |
ORACLE instance (0) | 2024.07.09 |