TECH
QUESTION
자주하는 질문답변 입니다.
Oracle
작성자 | 유건데이타 | 등록일 | 2015-05-18 |
제목 | ORACLE 8.0의 IOT(INDEX ORGANIZED TABLE) | ||
---|---|---|---|
ORACLE 8.0의 IOT(INDEX ORGANIZED TABLE)
======================================= Index Organized Talbe(IOT)는 Oracle 8에서 처음 소개된 새로운 object이다. IOT에 대한 소개 및 특징, 사용 방법에 대하여 설명을 한다. [특징] - IOT는 table data를 primary key에 대한 B*Tree index에 적재하는 구조를 갖는다. - IOT의 index row들은 인덱스 키 값과 non-key 값을 포한한다. - IOT의 index에는 ROWID 정보가 없다. [장점] - range search, exact match를 수행하는 경우 일반적인 table보다 빠른 key-based access가 가능하다. - full table scan 시 primary key에 대한 full index scan이 이루어지므로 자동적인 ordering이 이루어진다. - index key column과 rowid에 대한 storage 중복을 피할 수 있어 storage가 절약된다. [제약사항] - 추가적인 index 생성이 불가능(IOT는 오직 primary key에 대한 indexing만 가능) - cluster table로 이용되지 못함. - 병렬 작업이 불가능 - 분산, 복제, 분할이 불가능 - long, long raw, lob이 지원이 안 됨. [IOT 생성 구문의 예 및 이에 대한 설명] SQL> CREATE TABLE IOTAB 2> (COL_PK NUMBER PRIMARY KEY, 3> COL2 VARCHAR2(500), 4> COL3 NUMBER, 5> COL4 VARCHAR2(1000)) 6> ORGANIZATION INDEX TABLESPACE USERS 7> PCTTHRESHOLD 10 INCLUDING COL2 8> OVERFLOW TABLESPACE USERS; - ORGANIZATION INDEX : IOT를 생성함을 정의하는 keyword - PCTTHRESHOLD : IOT의 단일 row가 (PCTTHRESHOLD / 100) * DB_BLOCK_SIZE 보다 크다면 INCLUDING column 이후의 column data는 OVERFLOW table에 저장된다. - INCLUDING : IOT의 단일 row size가 (PCTTHRESHOLD / 100) * DB_BLOCK_SIZE 보다 큰 경우 INCLUDING column 이후의 row data는 overflow table에 저장이 된다. 만일 including column이 지정이 되어 있지 않다면 pramary key column 이외의 column data가 overflow table에 저장된다. - OVERFLOW TABLESPACE : 만일 overflow tablespace option을 주지 않고 생성된 IOT에 대하여 (PCTTHRESHOLD / 100) * DB_BLOCK_SIZE보다 큰 row가 발생한다면 ORA-1429와 같은 오류를 만나게 된다. [IOT의 chained rows 확인] - IOT의 chained rows 수를 확인하는 방법은 다음과 같이 IOT를 위한 chained_rows table을 생성한 후 anlyze command를 이용하여 가능하다. procedure BUILD_CHAIN_ROWS_TABLE( owner in varchar2, iot_name in varchar2, chainrow_table_name in varchar2 default 'IOT_CHAINED_ROWS'); - DBMS_IOT package는 $ORACLE_HOME/rdbms/admin/dbmsiotc.sql에 정의되어 있다. - 다음은 IOT의 chained row 확인 절차에 대한 보기이다. SQL> EXECUTE DBMS_IOT.BUILD_CHAIN_ROWS_TABLE('SCOTT','IOTAB'); SQL> ANALYZE TABLE IOTAB LIST CHAINED ROWS INTO IOT_CHAINED_ROWS; |
Comment | |||
---|---|---|---|
등록된 코멘트가 없습니다. |