SQLP

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

Parent·Child Cursor 이해와 진단: SQL_ID·VERSION_COUNT·V$SQL_SHARED_CURSOR

원래 이론 →

판단 기준

혼동하기 쉬운 판단정확한 기준
같은 SQL_ID면 실행계획도 하나다SQL_ID는 Parent를 식별하며 여러 Child와 Plan Hash가 존재할 수 있다
CHILD_NUMBER의 최댓값+1이 VERSION_COUNT다Child 번호에 빈 구간이 생길 수 있으므로 VERSION_COUNT를 직접 확인한다
VERSION_COUNT는 누적 생성된 Child 수다현재 Cache에 존재하는 Child 수다
VERSION_COUNT가 2 이상이면 장애다필요한 Child인지 불필요한 공유 실패인지 분류한다
Literal 값이 다르면 한 Parent의 VERSION_COUNT가 증가한다일반적으로 Text가 달라 별도 Parent와 SQL_ID가 생성된다
LITERAL_MISMATCH는 일반 Data Literal 차이를 뜻한다공식적으로 Non-Data Literal 호환성 문제이므로 Parent 증가와 구분한다
같은 PLAN_HASH_VALUE면 같은 Child다Plan 구조가 같아도 Bind Metadata·환경이 다른 Child일 수 있다
Invalidation이 발생하면 반드시 Child 수가 증가한다기존 Child의 Reload·Reoptimization으로 처리될 수도 있다
Child Cursor가 많으면 모두 ACS 때문이다Bind·Object·권한·Optimizer 환경·Invalidation 등 다른 원인도 확인한다
Shared Pool Flush로 Version Count 문제가 해결된다Cursor를 제거할 뿐 원인 조건은 남고 Hard Parse가 다시 발생한다

이 부분의 원문 →

헷갈리는 개념

View관찰 단위주요 용도
V$SQLAREAParent Cursor 집계VERSION_COUNT와 Parent 아래 전체 실행·Parse·Memory 상태
V$SQLChild CursorCHILD_NUMBER, PLAN_HASH_VALUE, Child별 실행·자원 사용과 상태
V$SQLAREA_PLAN_HASHSQL_ID·PLAN_HASH_VALUE 그룹한 Parent의 Plan별 집계 비교
V$SQL_PLANChild Cursor별 Plan Operation특정 Child의 실행계획 Operation과 Predicate 정보
V$SQL_SHARED_CURSORChild 공유 실패 항목기존 Child와 공유하지 못한 이유를 Y/N Column으로 확인
V$SQL_SHARED_CURSOR_DIAGChild 공유 실패 상세 진단26ai에서 FAILING_CRITERIA·DIAG_DATA JSON 확인
V$SQL_BIND_CAPTUREChild별 Bind Metadata·일부 과거 값Bind Type·Length와 Capture 여부 확인
이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.