Tablespace
- DBMS에 저장되는 자료가 있는 물리적인 파일.
- 각 개체마다 테이블스페이스를 지정해 줄 수 있고, 사용자에게 기본으로 사용할 테이블스페이스를 지정할 수 있다.
- 오라클에서는 기본적으로 /usr/local/oracle/oradata/[SID]/ 디렉토리에 기본 테이블스페이스를 생성하며,
Oracle Express Edition에서는 /usr/lib/oracl/xe/oradata/XE/ 디렉토리에 기본 테이블스페이스를 저장한다.
테이블스페이스 생성
테이블스페이스를 생성할 경우 여러 옵션이 사용될 수 있으나 테이블스페이스의 기본 용량을 자동으로 늘려주는
옵션(autoextend) 등은 기본으로 사용하는 것이 편하다.
create
tablespace 테이블스페이스명 (예: ts_jihyung)
datafile
'테이블스페이스 파일 저장 경로 (예: D:/db/테이블스페이스명.dbf)'
size
파일 용량 (예: 50M)
autoextend
on
extent management
local
autoallocate;
Temp 테이블스페이스 생성
Temp 테이블스페이스의 최소 용량은 1 MByte 이상이다. 그러므로 처음 생성시 2 MByte로 생성 한 뒤 자동증가 옵션을 사용한다
create
temporary
tablespace 테이블스페이스명 (예: ts_temp_jihyung)
tempfile
'Temp 테이블 스페이스 파일 저장 경로 (예: D:/db/Temp테이블스페이스명.dbf)'
size
파일 용량 (예: 2M)
autoextend
on
extent management
local
;
테이블스페이스 삭제
특별한 경우가 아니라면 테이블스페이스의 모든 내용을 자동으로 지우고 파일까지 깔끔하게 삭제할 수 있다.
이 옵션이 바로 "including contents AND datafiles"이다.
drop
tablespace 테이블스페이스명
including contents
and
datafiles
cascade
constraints;
-- 테이블 스페이스 관련
계정생성시에 tablespace를 지정해주지않으면 ( Default tablespace를 지정하지 않으면 )
Database의 Default Tablespace로 Object가 저장이되고 ,
Database의 Default Tablespace가 지정되지 않았다면 System Tablespace로 저장이 됩니다.
현재 유저의 Default Tablespace 확인은 user_users의 테이블을 조회
유저의 Default Tablespace 지정
SQL> Alter User 유저명 default tablespace 테이블스페이스명;
유저 Default Tablespace 변경
SQL> Alter User 유저명 default tablespace 테이블스페이스명;
테이블의 Tablespace 변경
SQL> Alter table 테이블명 Move Tablespace 테이블스페이스명;
* 테이블이 차지하는 빈공간 제거 쿼리
ALTER TABLE 테이블명 SHRINK SPACE ;
ALTER TABLE 테이블명 DEALLOCATE UNUSED ;
'Database > Oracle' 카테고리의 다른 글
[Procedure] ORA-06550: 식별자가 정의되어야 합니다 (0) | 2016.12.04 |
---|---|
[Oracle] Sequence 증가 분 이상 시 (0) | 2016.07.13 |
[ORA-ERROR] iBATIS ORA-00911: 문자가 부적합합니다 (0) | 2016.06.22 |
[LISTAGG, WM_CONCAT ] 오라클 버전별 열 행 문자열 합치기 (0) | 2016.06.13 |
[Byte] character set 에 따른 다른 한글 크기 (0) | 2016.06.11 |