테이블스페이스

테이블스페이스(Tablespace)는 데이터베이스 오브젝트 내 실제 데이터를 저장하는 공간이다. 이것은 데이터베이스의 물리적인 부분이며, 세그먼트로 관리되는 모든 DBMS에 대해 저장소(세그먼트)를 할당한다.

데이터베이스 세그먼트는 데이터베이스 오브젝트 중의 하나이며, 테이블이나 인덱스와 같이 물리적 공간을 점유한다. 테이블스페이스는 한번 생성되면, 데이터베이스 세그먼트 생성시 이름으로 참조된다.

테이블스페이스는 단지 데이터베이스 저장소 위치를 지정할 뿐이며, 논리적 데이터베이스 구조나 스키마를 지정하지 않는다. 예를 들면, 동일한 스키마내의 다른 오브젝트는 서로 다른 테이블스페이스에 놓일 수 있다. 마찬가지로, 하나의 테이블스페이스는 여러 세그먼트들을 서비스 할 수 있다.

테이블스페이스를 사용하여 관리자는 디스크 배치를 통제할 수 있다. 데이터베이스의 일반적인 사용은 성능을 최적화하는 것이다. 예를 들면, 빈번히 사용되는 인덱스는 빠른 SCSI 디스크에 놓을 수 있다. 반대로, 거의 사용되지 않는 데이터베이스 테이블은 값싸고 느린 IDE 디스크에 저장할 수 있다.

테이블스페이스가 파일시스템에 데이터를 저장하는 것이 일반적인 반면, 일부 DBMS는 raw device로 불리는 O/S device로 구성하여 운영 체제 파일시스템의 오버헤드를 없애고 더 빠른 성능을 제공한다.

오라클 예제 편집

오라클 DBMS는 테이블스페이스 생성을 위해 “CREATE TABLESPACE” 명령어를 사용한다. 예를 들면

CREATE  TABLESPACE  index1  DATAFILE  ‘/mnt/sda1/index1.dbf' 
SIZE 100M ;\\\\\\\\\\\

오라클의 테이블스페이스 편집

  • 영구(Permnet) 테이블스페이스는 사용자 데이터베이스 오브젝트를 저장하는 주요한 테이블스페이스이다.
  • 취소(Undo) 테이블스페이스는 트랜잭션이 롤백 된 이후 undo commit 트랜잭션에 사용될 데이터를 저장하기 위해 사용된다.
  • 임시(Temporary) 테이블스페이스는 짧은 기간 동안 임시로 사용될 데이터를 저장하는 데 사용된다. DBMS가 데이터베이스 정렬하거나, 사용자의 전역 변수 임시 저장용으로 사용될 수 있다.