오라클 ROWID 구조
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 오라클 ROWID 구조[편집]
record_voice_over
- 데이터파일 번호, 블록번호,로우 번호 와 같은 위치정보를 포함한다.
- 테이블 레코드를 찾아가는데 필요한 주소 정보.
- 테이블에 실제 저장되어있지는 않음. 가상(pseudo) 컬럼.
1.1 제한 rowid 포맷 정보[편집]
notifications_active 제한 ROWID 포맷
- 데이터파일 번호(4자리) : 로우가 속한 데이터파일 번호로서, 데이터베이스 내에서 유일한 값
- 블록번호(8자리) : 해당 로우가 저장된 데이터 블록 번호이며,(테이블스페이스가 아니라) 데이터파일 내에서의 상대적 번호
- 로우번호(4자리) : 블록 내에서 각 로우에 붙여진 일련번호로서, 0부터시작
SQL> select rowid, empno, ename from emp;
ROWID EMPNO ENAME
------------------ ---------- ----------
AAAR3sAAEAAAACXAAA 7369 SMITH
AAAR3sAAEAAAACXAAB 7499 ALLEN
AAAR3sAAEAAAACXAAC 7521 WARD
1.2 확장 rowid 포맷[편집]
notifications_active 확장 ROWID 포맷
- 데이터 오브젝트번호(6자리) : 데이터베이스 세그먼트를 식별하기 위해 사용되는 데이터 오브젝트 번호
- 데이터파일 번호(3자리) : 로우가 속한 데이터파일 번호(테이블스페이스 내에서 상대적인 파일번호)
- 블록 번호(6자리) : 해당 로우가 저장된 데이터 블록 번호이며,(테이블스페이스가 아니라) 데이터파일 내에서의 상대적 번호
- 로우번호(3자리) : 블록 내에서 각 로우에 붙여진 일련번호로서, 0부터시작
SQL> select rowid extended_format
2 , dbms_rowid.rowid_to_restricted(rowid, 0) r_f
3 , dbms_rowid.rowid_object(rowid) object
4 , dbms_rowid.rowid_relative_fno(rowid) file_no
5 , dbms_rowid.rowid_block_number(rowid) block_no
6 , dbms_rowid.rowid_row_number(rowid) row_nillruJer
7 from emp e
8 where empno = 7369;
EXTENDED_FORMAT R_F OBJECT FILE_NO BLOCK_NO ROW_NILLRUJER
------------------ ------------------ ---------- ---------- ---------- -------------
AAAR3sAAEAAAACXAAA 00000097.0000.0004 73196 4 151 0
1.2.1 출력된 rowid 포맷이 어느 타입에 속하는지 확인[편집]
SQL> select dbms_rowid.rowid_type( 'AAAR3sAAEAAAACXAAA' ) extended_format
, dbms_rowid.rowid_type ('00000097.0000.0004') restricted_format
from dual;
EXTENDED_FORMAT RESTRICTED_FORMAT
--------------- -----------------
1 0
1.2.2 데이터파일번호를 이용해서 오브젝트와 데이터파일에 대한 정보를 조회[편집]
- 오브젝트 정보 조회
select object_id,
owner,
object_name,
subobject_name
from dba_objects
where data_object_id ='73196'
OBJECT_ID OWNER OBJECT_NAME SUBOBJECT_NAME
---------- ------------------------------ ---------------- ------------------------------
73196 SCOTT EMP
- 데이터파일에 정보 조회
select file_id, file_name, tablespace_name
from dba_data_files
where relative_fno =4;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- ------------------------------------------ --------------------
4 C:\APP\BSHMAN\ORADATA\ORCL\USERS01.DBF USERS