본문 바로가기

아케텍쳐14

04.라이브러리 캐시 최적화 원리 - 04.커서 공유 (1)커서란? 우리가 흔히 말하는 커서는 아래 3가지를 모두 일컫는 말입니다. 공유 커서(shared cursor): 라이브러리 캐시에 공유 돼 있는 shared SQL area 세션 커서(session cursor): Private SQL area에 저장된 커서 애플리케이션 커서(application cursor): 세션 커서를 가리키는 핸들 공유커서 java,vb,pro*c,pl/sql 등에서 sql을 수행하면 서버 프로세스는 해당 sql이 라이브러리 캐시에 공유돼 있는지를 먼저 확인합니다. 없으면 최적화 과정을 통해 실행계획을 만들고, 라이브러리 캐시에 공유합니다. 그렇게 라이브러리 캐시에 공유돼 있는 shared SQL area를 커서라고 부릅니다. 세션커서 라이브러리 캐시에 공유돼 있는 커서를 .. 2020. 1. 14.
04.라이브러리 캐시 최적화 원리 - 03.라이브러리 캐시 구조 라이브러리 캐시는 Shared Pool 내에 위치하며, SQL 공유 커서 및 데이터베이스 오브젝트(테이블,인덱스)에 대한 정보를 관리합니다. 그리고 여기에 저장되는 정보의 단위를 라이브러리 캐시 오브젝트(LCO)라고 부릅니다. SQL 커서 뿐만 아니라 컴파일을 거친 프로시저, 함수, 패키지, 트리거 등 PL/SQL프로그램을 담는 PL/SQL Area도 라이브러리 캐시에 저장합니다. (실행가능 LCO) 뿐만 아니라 거기서 참조하는 테이블,인덱스, 클러스터 같은 데이터베이스 오브젝트 정보들도 동등하게 하나의 오브젝트로써 관리됩니다.(오브젝트 LCO) 스키마 오브젝트 정보는 데이터 딕셔너리 캐시에도 캐싱돼 있는데 라이브러리 캐시에 중복 저장하는 이유가 무엇일까요. 라이브러리 캐시에 스키마 오브젝트 정보를 캐싱.. 2020. 1. 10.