콘텐츠로 이동

CREATE DISK TABLESPACE

CREATE DISK TABLESPACE#

구문#

create_disk_tablespace ::=#

create_disk_tablespace_image137

datafile_spec ::=#

datafile_spec

autoextend_clause ::=#

autoextend_clause

maxsize_clause ::=#

maxsize_clause

전제 조건#

SYS 사용자이거나 CREATE TABLESPACE 시스템 권한을 가진 사용자만이 테이블스페이스를 생성할 수 있다.

설명#

데이터베이스 내에 영구적으로 데이터베이스 객체를 저장할 수 있는 디스크 테이블스페이스를 생성하는 구문이다. 이 구문에 의해 생성되는 테이블스페이스에는 테이블과 인덱스가 저장될 수 있다.

DISK#

디스크 테이블스페이스를 생성한다. DISK 키워드 없이 CREATE TABLESPACE 구문을 실행하여도 디스크 테이블스페이스가 생성된다.

DATA#

사용자의 데이터가 저장될 테이블스페이스가 생성된다. DATA 키워드가 없이 CREATE TABLESPACE 구문을 실행하여도 데이터 테이블스페이스가 생성된다.

tablespace_name#

생성될 테이블스페이스 이름을 명시한다. 테이블스페이스 이름은 2장 "객체 이름 규칙"을 따라야 한다.

EXTENTSIZE 절#

페이지의 집합인 익스텐트(extent)의 크기를 명시하는 절이다. 생성 시 한번 결정되면 이후 변경할 수 없다. 기본 단위는 kB(킬로바이트, K로 표현됨)이며, MB(메가바이트, M으로 표현됨), 또는 GB(기가바이트, G로 표현됨) 단위로 크기를 명시할 수 있다.

명시하지 않을 경우 기본값은 한 페이지 크기의 64배이다. 익스텐트 크기를 명시할 경우에는 한 페이지 크기의 배수로 설정해야 한다. 만약 페이지 크기의 배수로 지정하지 않을 경우에는 내부적으로 페이지의 배수에 가장 가까운 값으로 수정되어 처리된다.

또한 디스크 테이블스페이스의 익스텐트 크기는 최소한 페이지 크기의 5배 이상으로 지정해야 한다. 즉 페이지의 크기가 8 kB이기 때문에 익스텐트의 크기는 최소한 40 kB 이상으로 지정해야 한다.

SEGMENT MANAGEMENT 절#

디스크 테이블스페이스 생성시 세그먼트 관리 방법을 결정한다. 세그먼트 관리 방법은 테이블스페이스 생성시 옵션으로 선택할 수 있다. 옵션을 명시하지 않으면 새로 생성되는 디스크 테이블스페이스는 프로퍼티 DEFAULT_SEGMENT_MANAGEMENT_TYPE에 설정된 방법으로 관리된다. (기본값은 AUTO이다.)

MANUAL#

프리 리스트(Freelist) 기반의 테이블스페이스 가용 공간 관리 방식으로 세그먼트 생성

AUTO#

비트맵(Bitmap) 인덱스 기반의 테이블스페이스 가용 공간 관리 방식으로 세그먼트 생성

datafile_spec#

디스크 테이블스페이스를 구성하는 데이터 파일을 명시한다.

file_name#

생성될 데이터 파일 이름을 절대 경로로 명시한다.

SIZE 절#

데이터 파일의 크기를 명시한다. 이 절을 생략하면, 기본 값은 100 MB이다. 기본 크기는 SYS_DATA_FILE_INIT_SIZE 프로퍼티로 변경 가능하다.

정수 값 뒤에 Kilobytes(K), Megabytes(M), 또는 Gigabytes(G)로 단위를 명시할 수 있다. 단위를 명시하지 않을 경우 기본 단위는 Kilobytes(K)이다.

REUSE#

기존 데이터 파일의 재사용 여부를 지정한다. 명시한 이름을 가진 파일이 이미 존재한다면 반드시 REUSE옵션을 명시해야 한다. 단 존재하는 파일을 재사용할 때에는 기존 데이터가 소실되기 때문에 주의가 필요하다.
그러나 존재하지 않는 파일 이름에 대해 이 옵션을 사용할 경우 이 옵션은 무시되며, 새로운 파일이 생성된다.

autoextend_clause#

데이터 파일에 대하여 확장할 수 있는 최대 공간까지 자동으로 확장될지 여부를 명시하는 절이다. 이 절 생략시, 기본으로 자동확장 기능은 꺼진다.

ON#

파일에 대한 자동 확장 기능이 켜진다.

OFF#

파일에 대한 자동 확장 기능이 꺼진다.

NEXT#

파일 크기가 자동으로 확장 될 때 다음에 증가 크기를 명시한다. AUTOEXTEND를 ON으로 하고 이 값을 명시하지 않을 경우, 기본 NEXT 값은 USER_DATA_FILE_NEXT_SIZE 프로퍼티에 지정된 값이다.

Kilobytes(K), Megabytes(M), 또는 Gigabytes(G) 로 단위를 명시할 수 있다. 단위를 명시하지 않을 경우 기본 단위는 Kilobytes이다.

maxsize_clause#

데이터 파일이 자동 확장 가능한 최대 크기를 명시한다. AUTOEXTEND를 ON으로 하고 이 값을 명시하지 않을 경우, 기본값은 USER_DATA_FILE_MAX_SIZE 프로퍼티에 지정된 값이다.

Kilobytes(K), Megabytes(M), 또는 Gigabytes(G) 로 단위를 명시할 수 있다. 단위를 명시하지 않을 경우 기본 단위는 Kilobytes이다.

UNLIMITED#

파일이 자동 확장되는 크기에 제한이 없음을 명시한다. 이 옵션이 사용되면, 실제 파일의 최대 크기는 운영체제 또는 파일 시스템상의 가용 공간의 양에 의해 결정될 것이다.

예제#

<질의> 다음은 3개의 데이터 파일을 가진 user_data 테이블스페이스를 생성한다. 단, 세그먼트는 "free list" 방식으로 관리되게 한다.

iSQL> CREATE TABLESPACE user_data
    DATAFILE '/tmp/tbs1.user' SIZE 10M,
    '/tmp/tbs2.user' SIZE 10M,
    '/tmp/tbs3.user' SIZE 10M
    SEGMENT MANAGEMENT MANUAL;
Create success.

<질의> 테이블스페이스를 구성하는 데이터 파일이 tbs.user인 10 MB의 user_data 테이블스페이스를 생성한다. (user_data 테이블스페이스에 기록되는 테이블이나 인덱스는 tbs.user 파일에 저장될 것이다.)

iSQL> CREATE TABLESPACE user_data DATAFILE '/tmp/tbs.user' SIZE 10M AUTOEXTEND
ON;
Create success.

<질의> User_data 테이블스페이스를 생성한다. 더 큰 공간이 요구될 때 500 kB 씩 증가되고 최대 크기 100 MB까지 자동 확장된다.

iSQL> CREATE TABLESPACE user_data
    DATAFILE '/tmp/tbs.user' SIZE 500K REUSE
    AUTOEXTEND ON NEXT 500K MAXSIZE 100M;
Create success.

<질의> 자동으로 확장되지 않는 데이터 파일 tbs.user로 구성된 테이블스페이스 user_data를 생성한다.

iSQL> CREATE TABLESPACE user_data
    DATAFILE '/tmp/tbs.user' AUTOEXTEND OFF;
Create success.