반응형
<..> |
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)
- 옵티마이져 힌트 사용
- 조건절 비교 값
반응형
'도전기 > SQLP' 카테고리의 다른 글
ch04_라이브러리 캐시 최적화[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.29 |
---|---|
ch04_라이브러리 캐시 최적화_05[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.27 |
SQLD_SQLP ANSI 표준 구문 (0) | 2024.05.23 |
SQLD/SQLP_논리연산자 우선순위 (0) | 2024.05.23 |
SQLD/SQLP_데이터 모델링 비교(RDBMS VS NoSQL) (0) | 2024.05.23 |