by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

14S_힙 구조 테이블




힙 구조 테이블

  • 힙 구조 테이블 (Heap Organized Table)
    • 기본
    • 큰 영역의 공간을 임의의 방식으로 관리
    • 데이터를 특정 순서로 정렬하여 저장하지 않고, 가장 적절한 장소에 저장
    • 입력 순서대로의 정렬을 원한다면
      • Sequance 나 Sysdate, Systimestamp 를 함께 입력해야 함
      • 정렬구문이 반드시 있어야 함
  • CREATE TABLE 옵션 확인
    • 최대한 간단한 구문으로 테이블 생성
    • dbms_metadata 패키지를 이용하여 장황한 옵션 구문 확인
      SQL> CREATE TABLE t(x INT PRIMARY KEY, y DATE, z CLOB);
      
      테이블이 생성되었습니다.
      
      SQL> SELECT dbms_metadata.get_ddl('TABLE', 'T') FROM dual;
      
      DBMS_METADATA.GET_DDL('TABLE','T')
      --------------------------------------------------------------------------------
      
        CREATE TABLE "SCOTT"."T"
         (    "X" NUMBER(*,0),
              "Y" DATE,
              "Z" CLOB,
               PRIMARY KEY ("X")
        USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING
        TABLESPACE "USERS"  ENABLE
         ) SEGMENT CREATION DEFERRED
        PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
        TABLESPACE "USERS"
       LOB ("Z") STORE AS BASICFILE (
        TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION
        NOCACHE LOGGING )
      
  • 힙 구조 테이블에서 중요하고 의미있는 5가지 파라미터
    파라미터 MSSM ASSM 내용
    FREELIST O X 다수의 동시 사용자가 대량의 데이터를 삽입하는 환경이라면,
    두 개 이상의 FREELIST를 설정하는 것이 유리
    PCTFREE O O INSERT 수행을 할 때 블록을 얼마나 채울 것인지를 의미한다.
    UPDATE에 의해 일어나는 로우이전을 결정하게 되므로 테이블을 어떻게 사용할 것인지에 따라 설정하여야 한다.
    PCTUSED O X PCTUSED보다 적은 공간이 사용된 블록은 새로운 로우들이 삽입될 수 있는 후보가 될 수 있다.
    PCTFREE와 마찬가지로 테이블이 어떻게 사용될지를 고려하여 이 옵션을 적절히 설정해야 한다.
    INITRANS O O 블록에 기본적으로 할당된 트랜잭션 슬롯의 개수다. 기본값은 2다.
    동일한 블록을 동시에 갱신하는 트랜잭션이 많은경우라면, 이 값을 증가시켜야만 한다
    COMPRESS
    NOCOMPRESS
    O O 9i R2 부터 직접 경로 수행인 경우에만 이 옵션을 적용 가능
    11g R1 부터는 COMPRESS FOR OLTP, COMPRESS BASIC 이 더해졌다
  • LOB 세그먼트는 PCTFREE/PCTUSED 에 영향을 받지 않는다.
    • 항상 용량에 맞게 채워진후 완전히 비워졌을 때만 FREELIST 의 가용공간으로 반환된다.

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.