본문 바로가기
개발자의 삶/DB

[오라클] 테이블 생성했는데, 기본 설정이 궁금하다!

by 나.R.D.(Rule Destoryer) 2019. 10. 15.

한번쯤 궁금했다.
오라클에서 테이블 생성했을 때, 순수하게 테이블명, 컬럼만 입력해서 생성해도 기본적으로 따라오는 속성들이 있다.
지금 파헤쳐보자!
하지만, 자세한 내용은 다루지 않겠다.


CREATE TABLE "SEOCH"."T_TEST" (
	"C_A" NUMBER(10,2),  
	"C_B" VARCHAR2(20 BYTE) 
) SEGMENT CREATION IMMEDIATE  
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255  
NOCOMPRESS LOGGING 
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) 
TABLESPACE "MYAREA";
  • SEGMENT CREATION IMMEDIATE
    • 이 옵션은 테이블 후, 바로 조회가 가능하다.
    • 다른 옵션
      • SEGMENT CREATION DEFERRED
        • 테이블을 바로 조회할 수 없다.

※ 하지만, 기본 설정이 IMMEDIATE 로 되어 있어서 그런지 DEFERRED 설정이 먹히지 않았다. (추후 확인해보는 걸로...)

  • PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
    • PCTFREE: 사용 가능한 공간에서 데이터 행의 갱신을 대비하여 확보해 놓는 블록 값(%)
      • ex) PCTFREE 10 = 데이터 블록의 10%를 사용 가능한 공간으로 유지하여 각 블록에 있는 행을 갱신한다.
    • PCTUSED: 테이블의 각 데이터 블록에 대해 유지하려는 사용 공간의 최소 백분율
      • ex) PCTUSED 40 = 데이터 블록의 사용 영역이 39%보다 적어지지 않으면 새로운 행을 삽입할 수 없다.
    • INITRANS: 하나의 데이터 블록에 지정될 초기 트랜잭션의 값
      • ex) INITRANS 1 = 하나의 데이터 블록에 지정될 초기 트랜잭션의 값
        • 최소 수준의 동시성을 보장, 1이 아닌 다른 수치로 설정한다면 해당 수치만큼의 트랜잭션이 동시에 블록을 갱신할 수 있다.
    • MAXTRANS: 데이터나 인덱스 블록을 동시에 갱신할 수 있는 트랜잭션의 수
      • ex) MAXTRANS 255 = 255 미만의 트랜잭션만 실행되며, 나머지 트랜잭션은 실행 중인 트랜잭션이 종료되어 실행할 수 있을 때까지 기다린다.
  • NOCOMPRESS LOGGING
    • COMPRESS: 압축
    • NOCOMPRESS: 압축을 하지 않는다.
    • LOGGING: 데이터베이스 내의 데이터에 대한 모든 변경 사항을 기록하기 위해 사용
  • STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    • INITIAL: 테이블 스페이스의 맨 첫번째 Extents의 크기
    • NEXT: 다음 Extents의 크기
    • MINEXTENTS: 생성할 Extents의 최소 값
    • MAXEXTENTS: 생성할 Extents의 최대 값
  • PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
    • PCTINCREASE: Extents의 증가율, Default값은 50
    • FREELISTS: 프로세스 프리리스트
    • FREELIST GROUPS: 다중 사용 가능 목록 그룹
  • BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  • BUFFER_POOL DEFAULT: 일반적인 버퍼캐시 영역
  • FLASH_CACHE DEFAULT: FLASH_CACHE는 내부 플래시 SSD를 나타내며, FLASH_CACHE 구문은 영구 저장소 대신 "임시"캐싱으로 처리
  • CELL_FLASH_CACH: 
  • TABLESPACE: 테이블스페이스 지정

※ 참고

테이블스페이스의 생성(Oracle8i)

Oracle 9i부터는 PCTFREE, PCTUSED를 직접 지정하는 방법은 권하지 않고, SEGMENT SPACE MANAGEMENT AUTO 절을 넣어서 자동으로 관리하는 방법을 권장..

www.gurubee.net

 

세그먼트 공간 관리를 오라클에 맡겨라

테이블과 인덱스에 설정된 사용 가능 목록이 정확히 얼마나 되는지를 알 수 있을까?얼마나 많은 사용 가능 목록 그룹이 있어야 최적의 성능을 발휘할..

www.gurubee.net

다중 버퍼캐시

데이터베이스에서 물리적으로 데이터를 저장하는 공간은 스토리지 또는 디스크에 위치한다. 사용자는 SQL을 이용해 디스크를 액세스하고 필요한 데..

www.gurubee.net

Oracle flash_cache tips

    Oracle flash_cache tips IT Tips by Donald BurlesonSeptember 5,  2015 Oracle 11g release 2 includes a feature called flash_cache, a table and index argument that resembles the assignment of high-use objects to the KEEP pool. However, unlike the KEEP poo

www.dba-oracle.com

반응형

댓글