티스토리 뷰
개발자의 삶/Database(PostgreSQL, Redis, Oracle, ...)
[오라클] 테이블 생성했는데, 기본 설정이 궁금하다!
나RD 2019. 10. 15. 19:05728x90
한번쯤 궁금했다.
오라클에서 테이블 생성했을 때, 순수하게 테이블명, 컬럼만 입력해서 생성해도 기본적으로 따라오는 속성들이 있다.
지금 파헤쳐보자!
하지만, 자세한 내용은 다루지 않겠다.
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
- 테이블을 바로 조회할 수 없다.
- 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이 아닌 다른 수치로 설정한다면 해당 수치만큼의 트랜잭션이 동시에 블록을 갱신할 수 있다.
- ex) INITRANS 1 = 하나의 데이터 블록에 지정될 초기 트랜잭션의 값
- MAXTRANS: 데이터나 인덱스 블록을 동시에 갱신할 수 있는 트랜잭션의 수
- ex) MAXTRANS 255 = 255 미만의 트랜잭션만 실행되며, 나머지 트랜잭션은 실행 중인 트랜잭션이 종료되어 실행할 수 있을 때까지 기다린다.
- PCTFREE: 사용 가능한 공간에서 데이터 행의 갱신을 대비하여 확보해 놓는 블록 값(%)
- 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: 테이블스페이스 지정
※ 참고
반응형
'개발자의 삶 > Database(PostgreSQL, Redis, Oracle, ...)' 카테고리의 다른 글
[PostgreSQL] date 일자 계산, 문자 합치기 기초부터 심화(?)까지 쿼리 모음 (0) | 2023.12.11 |
---|---|
[오라클] 디비링크 생성 (0) | 2019.11.13 |
[오라클] 잡 생성 (0) | 2019.10.29 |
[ERwin] DDL script(Comment 포함) 추출하기 (0) | 2019.10.24 |
[오라클] DB 관련 문서(엔티티/테이블 정의서, 테이블 목록 등) 작성 (0) | 2019.10.14 |
단기 속성 입문 현업 사용 MS-SQL SSMS 단축키 설정 정리 (0) | 2017.05.18 |
[MySQL] MySQL 64bit 설치 (2) | 2017.05.10 |
[MySQL] Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode ... (0) | 2017.05.10 |