h3.B-Tree클러스터액세스(Cluster access)
h4.<다중테이블클러스터링>
Rows Excution Plan
---
1593 NESTED LOOPS
145 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
146 INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
1593 TABLE ACCESS (CLUSTER) OF 'COL$'
145 INDEX (UNIQUE SCAN) OF 'I_OBJ#' (CLUSTER)
- 'I_OBJ#' 인덱스를 UNIQUE SCAN 145건 ACESS
- 'COL$' 테이블을 클러스터로 1593건 ACCESS
- OBJ#은 UNIQUE SCAN으로 봐서 COL$테이블의 식별자 이기 때문에 이 두테이블은 이 클러스터 키를 통해 다중테이블 클러스트링이 되어 있음을 알 수 있다.
- COL$테이블은 M쪽이므로하나의 클러스터키에 여러개의 로우가 존재한다.(145개 클러스터키-> 1593건 ACCESS)
h4.<단일테이블클러스터링>
Rows Excution Plan
---
318 NESTED LOOPS
3207 TABLE ACCESS (CLUSTER) OF 'BPM500T'
10 INDEX (RANGE SCAN) OF 'BPM500T_CLX' (CLUSTER)
318 TABLE ACCESS (BY ROWID) OF 'BPM01T'
318 INDEX (UNIQUE SCAN) OF 'BPM01T_PK' (UNIQUE)
- 'BPM01T'가 기본키로 318건을 UNIQUE SCAN하여 테이블을 318건 ACCESS
- 클러스터 액세스를 한 BPM500T의 클러스터기와 같지 않으므로 이들은 서로 다중테이블 클러스터링을 하지 않음.
- 클러스터 인덱스를 RANGE SCAN한 10건으로 테이블을 클러스터 액세스 하였더니 3207건이 되었다.
- 클러스터키당 약 320건이 한곳에 모여 있으므로 테이블을 액세스하기 위한 랜덤은 10회발생.
- 테이블액세스는 3207건 했지만, 일반적인 인덱스 스캔방식으로 10여건을 처리한 속도와 유사하다.