본문 바로가기
도전기/SQLP

ch04_라이브러리 캐시 최적화_04[오라클 성능 고도화 원리와 해법_I]

by Qookoo 2024. 8. 27.
반응형
<..>

1. 커서의 정의

라이브러리 캐시 공유된 공유커서, Private 영역에 저장된 세션커서, 세션커서를 가리키는 핸들 애플리케이션 커서를 의미

공유커서 세션커서 애플리케이션 커서
최적화 후 실행계획, 라이브러리캐시에 공유 라이브러리 캐시에 공유돼 있는 커서를 실행할때 PGA 영역에 메모리를 할당 PGA에 있는 커서를 핸들링 하려면 클라이언트 애플리케이션에도 리소스 할당
  Persistent Area, Runtime Area  

 

2. 커서 공유

- 라이브러리 캐시의 공유커서를 지칭, 세션커서와 애플리케이션 커서는 공유 불가함

- v$sql 내 조회 항목

parse_call 라이브러리 캐시에서 SQL 커서를 찾으려는 요청횟수(소프트 파싱 횟수)
loads 하드파싱을 거친 SQL 실행계획을 라이브러리 캐시에 적재한 횟수(하드파싱 횟수)
executions SQL 수행 횟수
invalidations 커서 무효화된 횟수 

 

3. Child 커서를 공유하지 못하는 경우

- SQL 마다 하나의 Parent 커서를 가지며, Child 커서는 여러개일 수 있다.

SQL에서 참조하는 오브젝트명이 같지만 SQL 실행한 사ㅛㅇ자에 따라 다른 오프젝트를 가리킬 때
참조 오브젝트가 변경돼 커서가 무효화 되면 이후 그 커서를 처음사용하려는 세션에 의해 다시 하드파싱 돼야하는데, 특정 세션이 아직 기존커서를 사용 중 일 때
옵티마이저 모드를 비롯해 옵티마이저 관련 파라미터가 다를 때
입력된 바인드 값의 길이가 크게 다를 때
NLS 파라미터를 다르게 설정했을 때
SQL 트레이스를 활성화 했을 때

- 옵티마이저 모드 불일치(optimizer_mismatch)

 

4. parent 커서를 공유하지 못하는 경우

- 공백 문자 또는 줄바꿈

- 대소문자 구분

- 테이블 Owner 명시

- 주석(Comment)

- 옵티마이져 힌트 사용

- 조건절 비교 값

 

 

 

 

반응형