콘텐츠로 이동

CREATE MEMORY TABLESPACE

CREATE MEMORY TABLESPACE#

구문#

create_memory_tablespace ::=#

create_memory_tablespace_image140

initsize_clause ::=, autoextend_clause ::=, checkpoint_path_clause ::=, splitsize_clause ::=

initsize_clause ::=#

initsize_clause_image141

autoextend_clause ::=#

autoextend_clause

maxsize_clause ::=#

maxsize_clause

checkpoint_path_clause ::=#

checkpoint_path_clause_image143

splitsize_clause ::=#

splitsize_clause_image144

전제 조건#

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

설명#

데이터베이스 내에 데이터베이스 객체를 저장할 수 있는 메모리 데이터 테이블스페이스를 생성하는 구문이다. 이 구문으로 생성된 테이블스페이스에는 메모리 테이블이 저장될 수 있다.

MEMORY#

메모리 테이블스페이스를 생성할 것을 지정한다.

DATA#

사용자의 데이터를 저장할 테이블스페이스를 생성할 것을 지정한다. DATA 키워드 없이 CREATE TABLESPACE 구문을 수행하여도 기본적으로 데이터 테이블스페이스가 생성된다.

tablespace_name#

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

initsize_clause#

생성될 테이블스페이스의 초기 크기를 지정한다.

SIZE#

테이블스페이스의 초기 크기를 명시한다. 이는 메모리 테이블스페이스의 기본 확장 크기의 배수여야 한다. (즉, EXPAND_CHUNK_PAGE_COUNT 프로퍼티에 지정된 페이지 개수 * 메모리 테이블스페이스의 한 페이지 크기 (32 KB))

예를 들어 EXPAND_CHUNK_PAGE_COUNT프로퍼티를 128로 지정했다면, 메모리 테이블스페이스의 기본 확장 크기는 128 * 4MB가 될 것이다. 그러므로 초기 크기는 4MB의 배수여야 한다.

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

autoextend_clause#

테이블스페이스가 자동으로 확장될 지 여부를 명시한다. 이 절을 생략하면, AUTOEXTEND는 기본으로 꺼진다.

ON#

AUTOEXTEND 옵션이 켜진다.

OFF#

AUTOEXTEND 옵션이 꺼진다.

NEXT#

테이블스페이스가 자동으로 크기가 증가될 때 증가할 양을 명시한다.

단, 이 크기는 메모리 테이블스페이스의 기본 확장 크기의 배수여야 한다. (EXPAND_CHUNK_PAGE_COUNT 프로퍼티에 지정된 페이지 개수 * 메모리 테이블스페이스의 한 페이지 크기 (32 KB))

AUTOEXTEND를 ON으로 지정하고 이 값을 명시하지 않을 경우, 기본값은 EXPAND_CHUNK_PAGE_COUNT프로퍼티에 지정한 값이다.

AUTOEXTEND가 OFF일 때 이 값은 의미없다.

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

maxsize_clause#

테이블스페이스 자동 확장 시 확장할 수 있는 최대 크기를 명시한다. AUTOEXTEND는 ON 으로 지정하고 이 값을 명시하지 않을 경우 기본값은 UNLIMITED이다.

AUTOEXTEND가 OFF이면 이 값은 의미없다.

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

UNLIMITED#

테이블스페이스가 자동 확장되는 크기에 제한이 없음을 명시한다.

이 옵션이 사용되면, 테이블스페이스는 그 크기가 데이터베이스내의 모든 메모리 테이블스페이스와 모든 휘발성 테이블스페이스의 총 크기가 MEM_MAX_DB_SIZE 프로퍼티에 지정된 크기에 도달할 때까지 자동으로 증가될 것이다.

checkpoint_path_clause#

메모리 테이블스페이스에 저장된 데이터의 영속성을 보장하기 위해 데이터는 파일에 저장되어야 한다. 이러한 메모리 테이블스페이스의 데이터 저장 파일을 "체크포인트 이미지"라고 한다.

checkpoint_path절은 체크포인트 이미지 파일이 저장될 체크포인트 경로(Path)들을 지정한다. 체크포인트 경로를 지정하지 않은 경우 MEM_DB_DIR 프로퍼티에 지정한 경로가 기본 경로로 사용된다.

checkpoint_path#

메모리 테이블스페이스의 체크포인트시 체크포인트 이미지가 저장되는 경로이다. 체크포인트 및 테이블스페이스 로딩시 디스크 입출력 비용을 분산할 수 있도록 다수의 경로가 지정될 수 있다.

split_each_clause#

이 절은 체크포인트 파일을 좀 더 작은 파일로 분리시키기 위해 사용된다. 이는 메모리 테이블스페이스의 크기가 운영체제에서 지원하는 최대 파일 크기를 초과할 때, 또는 입출력 비용을 분산하기 위해서 유용하다. 분할된 파일의 크기는 사용자가 지정할 수 있다. 크기를 지정하지 않을 경우 DEFAULT_MEM_DB_FILE_SIZE 프로퍼티에 지정된 값이 기본으로 사용된다.

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

예제#

<질의 1> 초기 크기가 512MB이고, 자동 확장되지 않는 사용자 정의 메모리 데이터 테이블스페이스를 생성한다. (체크포인트 이미지는 MEM_DB_DIR 프로퍼티에 지정된 경로에 저장된다. 분할될 체크포인트 이미지 파일의 크기는 DEFAULT_MEM_DB_FILE_SIZE 프로퍼티의 값을 따른다.)

iSQL> CREATE MEMORY DATA TABLESPACE user_data SIZE 512M;
Create success.

<질의 2> 초기 크기가 512MB이고, 128MB 단위로 자동 확장되는1 사용자 정의 메모리 데이터 테이블스페이스를 생성한다. (체크포인트 이미지는 MEM_DB_DIR 프로퍼티에 지정된 경로에 저장된다. 분할될 체크포인트 이미지 파일의 크기는 DEFAULT_MEM_DB_FILE_SIZE 프로퍼티의 값을 따른다.)

iSQL> CREATE MEMORY DATA TABLESPACE user_data 
SIZE 512M 
AUTOEXTEND ON NEXT 128M;
Create success.

<질의 3> 초기 크기가 512MB 이고, 최대 1 GB까지 128MB 단위로 자동 확장되는 사용자 정의 메모리 데이터 테이블스페이스를 생성한다. (체크포인트 이미지는 다중화를 위해 3개의 디렉토리에 나누어 저장하고, 분할될 체크포인트 이미지 파일의 크기를 256M로 한다.)

iSQL> CREATE MEMORY DATA TABLESPACE user_data 
SIZE 512M AUTOEXTEND ON NEXT 128M MAXSIZE 1G 
CHECKPOINT PATH '/dbs/path1', '/dbs/path2', '/dbs/path3' 
SPLIT EACH 256M;
Create success.

  1. 테이블스페이스의 최대 크기를 MAXSIZE절을 이용하여 지정하지 않았으므로, 기본적으로 UNLIMITTED를 지정한 것과 같다. 이 경우 시스템에 존재하는 모든 메모리 테이블스페이스와 휘발성 테이블스페이스의 크기의 총합이 MEM_MAX_DB_SIZE 프로퍼티에 지정된 값을 벗어나지 않는 한도 내에서 테이블스페이스의 확장이 이루어진다.