oracle 인덱스 조직표의 깊이 있는 설명

3475 단어
인덱스 조직표(IOT)는 데이터뿐만 아니라 테이블에 만들어진 인덱스도 저장할 수 있다.색인 조직표의 데이터는 메인 키 정렬 후의 순서에 따라 배열되어 접근 속도를 높인다.그러나 이것은 삽입과 업데이트 성능을 희생하는 대가이다. (쓰기와 업데이트가 있을 때마다 다시 정렬해야 한다.)색인 조직 테이블의 작성 형식은 다음과 같습니다.
 
  
create table indexTable(  
ID   varchar2 (10),  
NAME varchar2 (20),  
constraint pk_id primary key (ID)  
)  
organization index;

참고:
● IOT를 만들 때 키를 설정해야 합니다. 그렇지 않으면 오류가 발생합니다.● 색인 조직표는 실제적으로 모든 데이터를 색인에 넣는다.인덱스 조직표 속성 1, OVERFLOW 자구(줄 넘침)는 모든 데이터가 인덱스에 들어가기 때문에 테이블의 데이터 양이 많을 때 인덱스 조직표의 조회 성능을 떨어뜨린다.이 때 프리미엄 세그먼트를 설정하면 메인 키와 프리미엄 데이터를 분리해서 저장하여 효율을 높일 수 있습니다.오버플로우 세그먼트 설정에는
PCTHRESHOLDn: 줄 데이터가 차지하는 크기가 초과될 때 줄의 다른 열 데이터를 오버플로우에 넣는 데이터 블록의 백분율을 설정합니다.
INCLUDING column_name: 지정한 열 앞의 열은 색인 블록에 넣고, 뒤의 열은 넘침 세그먼트에 넣습니다
● 행에서 필드의 데이터 양을 확인할 수 없을 경우 PCTHRESHOLD 를 사용합니다.● 모든 행이 PCTHRESHOLD에서 정한 크기를 초과하면 INCLUDING을 사용합니다.
 
  
    create table t88(  
    ID varchar2 (10),  
    NAME varchar2 (20),  
    constraint t88_pk_id primary key (ID)  
    ) 
    organization index  
    PCTTHRESHOLD 20  
    overflow tablespace users  
    INCLUDING name ;  

상기에서 보듯이,name과 그 다음의 열은 반드시 넘침열에 넣고, 다른 열은 PCTHRESHOLD 규칙에 따른다.
2. COMPRESS 자구(키 압축)는 일반적인 인덱스와 마찬가지로 인덱스 조직표도 COMPRESS 자구를 사용하여 키 압축을 해서 중복값을 제거할 수 있다.
구체적인 조작은organization index 다음에COMPRESS n 자구를 붙이는 것이다
색인 열을 압축하는 데 사용되며, 블록 단계에서 공통 인자를 추출하여 중복 값을 피합니다.
예:
 
  
    create table iot( 
    owner       VARCHAR2(8), 
    object_type VARCHAR2(8), 
    object_name VARCHAR2(8), 
    constraint iot_pk primary key(owner, object_type,object_name)) 
    organization index 
    NOCOMPRESS; 

모든 키 조합이 물리적으로 저장된다는 뜻이다.COMPRESS N을 사용하는 경우 중복된 열은 더 이상 물리적으로 저장되지 않습니다.
● n의 의미는 압축된 열의 수를 지정하는 것이다.묵인하다.예를 들어 데이터(1,2,3),(1,2,4),(1,2,5),(1,3,4),(1,3,5)에 대해
COMPRESS를 사용하면 중복된(1,2),(1,3)을 압축합니다
COMPRESS 1을 사용하는 경우 데이터(1)만 압축
색인 조직표의 유지보수(1), 색인 조직표는 일반 무더기표와 같이 INSERT, UPDATE, DELETE, SELECT 조작을 할 수 있다.
(2), Alter TABLE 사용...오버플로우 세그먼트의 속성을 변경하려면 OVERFLOW 문을 사용합니다.
 
  
Alter table indextable add overflow; 

(3) Alter의 모든 OVERVIEW 속성은 오버플로우를 먼저 정의해야 합니다. 만약에 테이블을 만들 때 새로 만들 수 없습니다.
 
  
alter table t88 pctthreshold 15 including name; -- overflow   
alter table t88 initrans 2 overflow initrans 4; -- initrans

색인 구성표의 응용 Heap Table는 일반 테이블이며 테이블의 데이터를 가져오는 것은 명중률에 따라 얻어집니다.명확한 선후의 구분이 없기 때문에 전체 표를 스캔할 때 먼저 삽입한 데이터를 먼저 얻는 것이 아니다.데이터의 저장도 랜덤이며, 당연히 사용 가능한 빈 공간에 따라 결정된다.
IOT는 모두 인덱스인 테이블과 유사하고 테이블의 모든 필드가 인덱스에 놓여 있기 때문에 데이터를 저장할 때 엄격한 규정에 따라 데이터가 삽입되기 전에 그 위치를 확정한 것과 같다. 따라서 삽입의 선후 순서를 막론하고 그 물리적인 위치는 삽입의 선후 순서와 무관하다.이렇게 하면 조회를 진행할 때 많은 Blocks에 접근하지 않을 수 있지만 삽입할 때 속도는 일반적인 시계보다 좀 느리다.색인 구성표는 주로 정보 검색, 공간 및 OLAP 프로그램에 적용됩니다.
색인 조직 테이블의 용도:
1. 코드 검색표.2. 메인 코드를 통해 자주 방문하는 표.3. 자신의 색인 구조를 구축한다.4. 데이터의 공동 포지셔닝을 강화하고 데이터가 특정한 순서에 따라 물리적으로 저장해야 한다.5, 자주 between... and... 으로 주 코드 또는 유일한 코드를 조회합니다.자주 업데이트되는 테이블은 IOT에 적합하지 않습니다.oracle은 색인을 계속 유지해야 하고 필드가 많으면 색인 비용이 많기 때문입니다.주 키 액세스 테이블을 자주 사용하지 않으면 IOT를 사용하지 마십시오.
IOT는 캐시에 필요한 블록이 적기 때문에 버퍼 캐시 효율을 높인다.
• 버퍼 캐시 액세스를 줄이면 확장성이 향상됩니다.
• 데이터를 얻는 작업의 총량이 더 적습니다. 데이터를 얻는 것이 더 빠르기 때문입니다.
• 쿼리당 물리적 I/O가 줄어듭니다.

좋은 웹페이지 즐겨찾기