SQLP
시험 직전 요약장
판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.
Clustering Factor 이해: 인덱스 순서와 Table Block 배치
원래 이론 →판단 기준
표를 좌우로 밀어 나머지 열을 확인하세요. 키보드: ←·→, Home·End
| 혼동 | 정확한 기준 |
|---|---|
| CF는 Index Leaf 정렬 상태다 | Index Key 순서와 Heap Table Block 배치 관계다 |
| CF가 낮으면 모든 SQL이 빨라진다 | 많은 ROWID Table Access가 있을 때 영향이 크다 |
| CF는 Table당 하나다 | 각 B-tree Index마다 다르다 |
| CF는 실제 SQL의 정확한 Block 수다 | 전체 배치를 요약한 거친 비용 통계다 |
| Index Rebuild로 CF가 개선된다 | Heap Table 배치가 바뀌지 않아 근본 원인은 유지된다 |
| CF가 높으면 Index를 삭제해야 한다 | 선택도·Covering·SQL 빈도와 실제 Runtime을 본다 |
| CF가 낮으면 Full Scan은 선택되지 않는다 | 결과 비율·Table 크기·Parallel 비용에 따라 달라진다 |
| Table 재배치는 모든 Index를 개선한다 | 한 Index 개선이 다른 Index를 악화시킬 수 있다 |
| 전체 CF만 보면 Partition SQL도 충분하다 | 대상 Partition 통계와 Pruning을 확인한다 |
| Cache Hit이면 CF 영향이 없다 | Physical Read가 없어도 Logical I/O·CPU·Block 재방문은 남는다 |
헷갈리는 개념
다음 통계를 가정합니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Table Rows = 1,000,000
Table Blocks = 50,000
INDEX_A CF = 62,000
INDEX_B CF = 930,000
대표 계산·예제
Oracle은 통계 수집 시 B-tree Entry를 Key 순서로 따라가며 ROWID가 가리키는 Table Block의 연속성을 통계화합니다.
단순 예입니다.
예시·텍스트좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
Index Entry Table Block
K1 B10
K2 B10
K3 B10
K4 B11
K5 B11
K6 B20
개념적 Block 흐름입니다.
도식좌우로 이동해 전체 내용을 확인하세요. 키보드: ←·→, Home·End
B10 → B10 → B10 → B11 → B11 → B20
- 같은 Block이 연속되면 CF는 낮은 방향
- Entry마다 Block이 자주 바뀌면 CF는 높은 방향
이 설명은 이해를 위한 단순화입니다. CF는 특정 SQL의 실제 Block 방문 수를 직접 저장한 값이 아니라 전체 Index와 Table 배치 관계를 요약한 Optimizer Statistics입니다.
내 최근 연습 오답
현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.
오답 기록을 확인하고 있습니다.