(1) 범위 스캔
(2) 인덱스 기본 구조
(3) 인덱스 탐색
브랜치 블록 스캔
결함 인덱스 구조와 탐색
(4) ROWID 포맷
제한 rowed 포맷
확장 rowed 포맷
select rowid extended_format
, dbms_rowid.rowid_to_restricted(rowid, 0) restricted_format
, dbms_rowid.rowid_object(rowid) object
, dbms_rowid.rowid_relative_fno(rowid) file_no
, dbms_rowid.rowid_block_number(rowid) block_no
, dbms_rowid.rowid_row_number(rowid) row_number
from emp e
where empno = 7369;
EXTENDED_FORMAT RESTRICTED_FORMAT OBJECT FILE_NO BLOCK_NO ROW_NUMBER
------------------ ------------------ ---------- ---------- ---------- ----------
AAAMgzAAEAAAAAgAAA 00000020.0000.0004 51251 4 32 0
select dbms_rowid.rowid_type('AAAM6PAAEAAAE2cAAA') extended_format
, dbms_rowid.rowid_type('00004D9C.0000.0004') restricted_format
from dual;
EXTENDED_FORMAT RESTRICTED_FORMAT
--------------- -----------------
1 0
- 브랜치 블록의 엔트리에 키 값을 저장시에는 압축 알고리즘 적용
- 모든 키값이 다 같을 경우는 하위 노드에 저장된 rowid 값까지 저장
begin
for i in 1..1000
loop
insert into t values (i, i);
end loop ;
commit;
end ;
Branch block dump
=================
header address 116152908=0x6ec5a4c
kdxcolev 1
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 3
kdxcosdc 1
kdxconro 66
kdxcofbo 160=0xa0
kdxcofeo 7472=0x1d30
kdxcoavs 7312
kdxbrlmc 25165847=0x1800017
kdxbrsno 65
kdxbrbksz 8060
kdxbr2urrc 0
row#0[8052] dba: 25165848=0x1800018
col 0; len 2; (2): c1 11
col 1; TERM
row#1[8044] dba: 25165845=0x1800015
col 0; len 2; (2): c1 20
col 1; TERM
...
==============================================
begin
for i in 1..1000
loop
insert into t values (1, i);
end loop ;
commit;
end ;
Branch block dump
=================
header address 116152908=0x6ec5a4c
kdxcolev 1
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 3
kdxcosdc 1
kdxconro 89
kdxcofbo 206=0xce
kdxcofeo 7055=0x1b8f
kdxcoavs 6849
kdxbrlmc 25165847=0x1800017
kdxbrsno 88
kdxbrbksz 8060
kdxbr2urrc 0
row#0[7956] dba: 25165849=0x1800019
col 0; len 2; (2): c1 02
col 1; len 3; (3): 31 30 39
col 2; TERM
row#1[7944] dba: 25165850=0x180001a
col 0; len 2; (2): c1 02
col 1; len 3; (3): 31 31 39
col 2; TERM
...
==============================================
begin
for i in 1..1000
loop
insert into t values (1, 1);
end loop ;
commit;
end ;
Branch block dump
=================
header address 116152908=0x6ec5a4c
kdxcolev 1
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 3
kdxcosdc 1
kdxconro 10
kdxcofbo 48=0x30
kdxcofeo 2902=0xb56
kdxcoavs 2854
kdxbrlmc 25165847=0x1800017
kdxbrsno 7070
kdxbrbksz 8060
kdxbr2urrc 7
row#0[2902] dba: 25165852=0x180001c
col 0; len 2; (2): c1 02
col 1; len 500; (500):
31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
col 2; len 6; (6): 01 80 00 0c 00 0b
row#1[3418] dba: 25165853=0x180001d
col 0; len 2; (2): c1 02
col 1; len 500; (500):
31 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
col 2; len 6; (6): 01 80 00 0d 00 08
...