database/oracle

TABLESPACE 이해

labj 2012. 3. 21. 20:49

----------------------------------

테이블스페이스 이해

----------------------------------

 

 

* 테이블스페이스는 논리적인 Storage 개념이다.
* 테이블스페이스는 물리적으로 하나 이상의 데이터 파일로 구성된다.
* 테이블스페이스는 크게 SYSTEM 테이블스페이스와 NON-SYSTEM 테이블스페이스로 구분된다.
* Segment는 Data, Index, Rollback, Temporary Segment등으로 구분된다.
* Segment는 하나 이상의 Extent 들로 구성된다.
* Extent란 연속적으로 할당 된 Free Block의 모음이다.
* Extent는 기본 Storage 할당 단위이다.
* DB Block은 기본 I/O 단위이다.

 

- 테이블스페이스 생성
create tablespace test_data
datafile 'f:/oracle/oradata/test_data01.dbf' size 10M
default storage ( initial 2M
  next 1M
  minextents 1
  maxextents 121
  pctincrease 0 );

 

- 두개의 파일로 구성된 하나의 테이블스페이스 만들기

ALTER TABLESPACE test_data
 ADD DATAFILE 'f:/oracle/oradata/test_data02.dbf'  SIZE 10M;

 

 

- 테이블스페이스 이름 변경하기

 

ALTER TABLESPACE test_data
 RENAME DATAFILE 'f:/oracle/oradata/test_data02.dbf'  TO
 'f:/oracle/oradata/test_data03.dbf' ;

 

 

- 테이블스페이스 제거
- Drop시에 segment 등의 내용이 있다면 삭제가 안된다
- 이경우에 including contents 를 하면 무조건 삭제 된다.
- A(a table), B(b table)라는 테이블스페이스가 있는데
a table이 b table을 참조하고 있다. B를 including contents로 삭제하면
무결성이 깨져서 안되는데 이경우에 cascade constraints를 사용하면 삭제된다.

- Drop 후 os에서 파일을 삭제해야 한다.


DROP TABLESPACE tablespace
 INCLUDE CONTENTS
 CASCADE CONSTRAINTS;

 

 

 

 

'database > oracle' 카테고리의 다른 글

TABLESPACE 정보 조회  (0) 2012.03.21
TABLESAPCE 이해2  (0) 2012.03.21
Sub Query  (0) 2012.03.21
JOIN  (0) 2012.03.21
그룹 결과 제한 - HAVING 사용  (0) 2012.03.21