개발노트

[Oracle] Tablespace 본문

Database/Oracle

[Oracle] Tablespace

개발자? 2022. 6. 22. 19:28

Tablespace 조회

dba_tablespaces : 모든 tablespace 목록

SQL> get tbs1
  1  select tablespace_name, block_size, max_size/1024/1024, status, contents, logging, extent_management, allocation_type, segment_space_management
  2* from dba_tablespaces
  
SQL> @tbs1

TABLESPACE_NAME      BLOCK_SIZE MAX_SIZE/1024/1024 STATUS             CONTENTS             LOGGING            EXTENT_MANAGEMENT    ALLOCATION_TYPE    SEGMENT_SPAC
-------------------- ---------- ------------------ ------------------ -------------------- ------------------ -------------------- ------------------ ------------
SYSTEM                     8192               2048 ONLINE             PERMANENT            LOGGING            LOCAL                SYSTEM             MANUAL
SYSAUX                     8192               2048 ONLINE             PERMANENT            LOGGING            LOCAL                SYSTEM             AUTO
UNDOTBS1                   8192               2048 ONLINE             UNDO                 LOGGING            LOCAL                SYSTEM             MANUAL
TEMP                       8192               2048 ONLINE             TEMPORARY            NOLOGGING          LOCAL                UNIFORM            MANUAL
USERS                      8192               2048 ONLINE             PERMANENT            LOGGING            LOCAL                SYSTEM             AUTO

 

dba_data_files : tablespace file 목록

SQL> get tbs2
  1  select tablespace_name, file_name, file_id, bytes/1024/1024 "mb"
  2* from dba_data_files
  
SQL> @tbs2

TABLESPACE_NAME      FILE_NAME                                             FILE_ID         mb
-------------------- -------------------------------------------------- ---------- ----------
SYSTEM               C:\APP\ORACLE\ORADATA\PROD\SYSTEM01.DBF                     1        810
SYSAUX               C:\APP\ORACLE\ORADATA\PROD\SYSAUX01.DBF                     3        490
UNDOTBS1             C:\APP\ORACLE\ORADATA\PROD\UNDOTBS01.DBF                    5        535
USERS                C:\APP\ORACLE\ORADATA\PROD\USERS01.DBF                      7          5
INVENTORY            C:\APP\ORACLE\ORADATA\PROD\INVENTORY01.DBF                  8        100

 

Datafile 생성 확인

 

dba_temp_files :temporary tablespace 목록

SQL> get tbs3
  1  select tablespace_name, file_name, file_id, bytes/1024/1024 "mb"
  2* from dba_temp_files
  
SQL> @tbs3

TABLESPACE_NAME      FILE_NAME                                             FILE_ID         mb
-------------------- -------------------------------------------------- ---------- ----------
TEMP                 C:\APP\ORACLE\ORADATA\PROD\TEMP01.DBF                       1         32

 

Permanent Tablespace 생성

 

create tablespace [테이블스페이스명]

datafile '파일경로'

size [초기 파일 크기] 

autoextend on next [자동으로 증가할 파일 크기] -- 옵션

 

maxsize [파일 최대크기] -- 옵션

extent management local -- 옵션

uniform size [Extent 1개의 크기] -- 옵션

SQL> create tablespace inventory
  2  datafile 'C:\APP\ORACLE\ORADATA\PROD\inventory01.dbf'
  3  size 100m
  4  uniform size 1m
  5  ;

테이블스페이스가 생성되었습니다.

SQL> get tbs1
  1  select tablespace_name, block_size, max_size/1024/1024, status, contents, logging, extent_management, allocation_type, segment_space_management
  2* from dba_tablespaces
  
SQL> @tbs1

TABLESPACE_NAME      BLOCK_SIZE MAX_SIZE/1024/1024 STATUS             CONTENTS             LOGGING            EXTENT_MANAGEMENT    ALLOCATION_TYPE    SEGMENT_SPAC
-------------------- ---------- ------------------ ------------------ -------------------- ------------------ -------------------- ------------------ ------------
SYSTEM                     8192               2048 ONLINE             PERMANENT            LOGGING            LOCAL                SYSTEM             MANUAL
SYSAUX                     8192               2048 ONLINE             PERMANENT            LOGGING            LOCAL                SYSTEM             AUTO
UNDOTBS1                   8192               2048 ONLINE             UNDO                 LOGGING            LOCAL                SYSTEM             MANUAL
TEMP                       8192               2048 ONLINE             TEMPORARY            NOLOGGING          LOCAL                UNIFORM            MANUAL
USERS                      8192               2048 ONLINE             PERMANENT            LOGGING            LOCAL                SYSTEM             AUTO
INVENTORY                  8192               2048 ONLINE             PERMANENT            LOGGING            LOCAL                UNIFORM            AUTO

6 행이 선택되었습니다.

생성한 테이블스페이스의 데이터파일 확인

Temporary Tablespace 생성

create temporary tablespace [테이블스페이스명]

tempfile '파일경로'

size [초기 파일 크기] 

extent management local -- 옵션(지역관리 임시 테이블스페이스로 생성)

- uniform size [Extent 1개의 크기] -- 옵션

- autoallocate  -- 옵션(Extent 크기 자동할당)

SQL> create temporary tablespace temporary01
  2  tempfile 'C:\APP\ORACLE\ORADATA\PROD\temporary01.tmp'
  3  size 100m
  4  autoextend on;

테이블스페이스가 생성되었습니다.

SQL> get tbs3
  1  select tablespace_name, file_name, file_id, bytes/1024/1024 "mb"
  2* from dba_temp_files
  
SQL> @tbs3

TABLESPACE_NAME      FILE_NAME                                             FILE_ID         mb
-------------------- -------------------------------------------------- ---------- ----------
TEMP                 C:\APP\ORACLE\ORADATA\PROD\TEMP01.DBF                       1         32
TEMPORARY01          C:\APP\ORACLE\ORADATA\PROD\TEMPORARY01.TMP                  2        100

생성한 임시 테이블스페이스의 데이터파일 확인

Temporary Tablespace 

종류

1. 일반 테이블스페이스를 임시 테이블스페이스로 사용

2. 임시 테이블스페이스

3. 지역 관리 임시 테이블스페이스

 

Extent 관리

일반 테이블스페이스

사용자별로 임시 Segment 를 생성해서 사용하게 되며, Sort 작업 종료시 임시 Segment를 할당 해제하는 작업이 동반하게 된다. Sement 할당 해제는 SMON 에 의해 수행된다.

 

임시 테이블스페이스와 지역관리 임시 테이블스페이스

하나의 임시 세그먼트를 모든 유저가 공유하여 Sort 작업을 한다. 따라서 임시 Segment 할당 해제를 하지 않는다.

 

Disk Access 

일반 테이블스페이스, 임시 테이블스페이스

일반적인 access

 

지역관리 임시 테이블스페이스

Direct access 방식으로, SGA 를 이용하지 않고 User Process 와 Direct Access 를 수행하여 속도가 빠르고 부하를 줄일 수 있다.

 

 

반응형

'Database > Oracle' 카테고리의 다른 글

Oracle RAC  (0) 2022.07.19
Instance 구성  (0) 2022.07.19
Oracle 서버 기동 상태  (0) 2022.07.19
[Oracle] 메모리 구조  (0) 2022.06.26
[Oracle] User 관리  (0) 2022.06.23
Comments