개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr
개발자에게 배우는 개발자교육! 구로 오라클자바교육학원 www.oraclejava.co.kr
* Oracle 테이블의 모든 Row는 ROWID라고 하는 물리적인 Address로 assign
- Non-clustered table 에 대해서는 이러한 address는 유일
* 내부적으로 ROWID는 binary 값을 가짐
* 외부적으로 Display 될때 에는 VARCHAR2 type의 column에 저장된 3 part의 hexdecimal string으로 표현 (Oralce 7)
- 첫번째 부분( position 1 through 8 ) : block ID
- 두번째 부분( position 10 through 13 ) : block 내부에서 row의 sequence number
- 세번째 부분( position 15 through 18) : data file ID를 나타낸다.
* Oracle 8에서 Object와 Partition의 개념이 도입되면서 Database의 Segment를 식별하기 위한 Data Object Number가 추가 -> A four-piece FORMAT
- 지수가 64인 Encoding 형태로 사용
- 18문자 넓이를 가짐
* OOOOOOFFFBBBBBBRRR
- OOOOOO : Database Segment를 식별하기 위한 Data Object Number (오브젝트번호)
- FFF : Tablespace에 상대적인 Datafile Number (데이터파일번호)
- BBBBBB : Row를 포함하는 Data Block Number (블록번호)
- RRR : Block에서의 Row의 Slot (로우스롯번호)
* Rule-based optimizer에서 ROWID를 이용하여 데이터를 엑세스하는 것이 가장 상위로 랭크된 엑세스 방법이며 가장 빠른 방법
* Pseudo-column 임
- 참조만 가능하며 데이타베이스에 값이 저장되지 않음
'오라클 > Oracle,SQL' 카테고리의 다른 글
[SQL 기초 및 PL-SQL 강의자료] Pseudo-column (0) | 2016.04.25 |
---|---|
[SQL 기초 및 PL-SQL 강의자료] Oracle ROWID의 변화 (0) | 2016.04.25 |
[SQL 기초 및 PL-SQL 강의자료] ROWID 데이터 타입 & 구성 (0) | 2016.04.25 |
[SQL 기초 및 PL-SQL 강의자료] ROWID 데이터 타입 (0) | 2016.04.25 |
[SQL 기초 및 PL-SQL 강의자료] LOB 데이터 타입 (0) | 2016.04.25 |