테이블스페이스
테이블스페이스는 데이터베이스 오브젝트 내 실제 데이터를 저장하는 공간이다.
이것은 데이터베이스의 물리적인 부분이며, 세크먼드로 관리되는 모든 DBMS 에 대해 저장소를 할당
예)
- 테이블 스페이스 공간 생성
##테이블스페이스 생성하기
create tablespace ts_t1 datafile 'C:\oracle\oradata\orcl\ts_t101.dbf' size 10m autoextend on;
create tablespace ts_t2 datafile 'C:\oracle\oradata\orcl\ts_t102.dbf' size 10m autoextend on;
create tablespace ts_t3 datafile 'C:\oracle\oradata\orcl\ts_t103.dbf' size 10m autoextend on;
create tablespace ts_t4 datafile 'C:\oracle\oradata\orcl\ts_t104.dbf' size 10m autoextend on;
create tablespace ts_t5 datafile 'C:\oracle\oradata\orcl\ts_t105.dbf' size 10m autoextend on;
#테이블스페이스 조회하기
select tablespace_name, bytes/1024/1024MB, file_name from dba_data_files;
- dba_data_files 조회
SQL> desc dba_data_files;
이름 널? 유형
----------------------------------------- -------- ----------------------------
FILE_NAME VARCHAR2(513)
FILE_ID NUMBER
TABLESPACE_NAME VARCHAR2(30)
BYTES NUMBER
BLOCKS NUMBER
STATUS VARCHAR2(9)
RELATIVE_FNO NUMBER
AUTOEXTENSIBLE VARCHAR2(3)
MAXBYTES NUMBER
MAXBLOCKS NUMBER
INCREMENT_BY NUMBER
USER_BYTES NUMBER
USER_BLOCKS NUMBER
ONLINE_STATUS VARCHAR2(7)
SQL> select FILE_NAME,TABLESPACE_NAME,BLOCKS,MAXBLOCKS,USER_BYTES/1024/1024MB,USER_BLOCKS from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME BLOCKS MAXBLOCKS MB USER_BLOCKS
------------------------------ ---------- ---------- ---------- -----------
C:\ORACLE\ORADATA\ORCL\USERS01.DBF
USERS 35200 4194302 274 35072
C:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
UNDOTBS1 13440 4194302 104 13312
C:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
SYSAUX 76800 4194302 599 76672
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME BLOCKS MAXBLOCKS MB USER_BLOCKS
------------------------------ ---------- ---------- ---------- -----------
C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
SYSTEM 89600 4194302 699 89472
C:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF
EXAMPLE 12800 4194302 99 12672
C:\ORACLE\ORADATA\ORCL\TS_T102.DBF
TS_T2 1280 4194302 9 1152
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME BLOCKS MAXBLOCKS MB USER_BLOCKS
------------------------------ ---------- ---------- ---------- -----------
C:\ORACLE\ORADATA\ORCL\TS_T101.DBF
TS_T1 1280 4194302 9 1152
C:\ORACLE\ORADATA\ORCL\TS_T103.DBF
TS_T3 1280 4194302 9 1152
C:\ORACLE\ORADATA\ORCL\TS_T104.DBF
TS_T4 1280 4194302 9 1152
FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME BLOCKS MAXBLOCKS MB USER_BLOCKS
------------------------------ ---------- ---------- ---------- -----------
C:\ORACLE\ORADATA\ORCL\TS_T105.DBF
TS_T5 1280 4194302 9 1152
-범위 파티션 실습 예제
create table ename
(
edate varchar2(8),
ecode number(3),
pqty number(5)
)
partition by range(edate)
(
partition q1 values less than ('20100401') tablespace ts_t1,
partition q2 values less than ('20100701') tablespace ts_t2,
partition q3 values less than ('20100801') tablespace ts_t3,
partition q4 values less than ('20101001') tablespace ts_t4,
partition q5 values less than ('20101101') tablespace ts_t5);
#계속해서 테이블 삽입하기
insert into ename
values('20100301', 150,20);
insert into ename
values('20100583', 150,20);
insert into ename
values('20100803', 150,20);
insert into ename
values('20100723', 150,20);
##파티션 q1 조회
select * from ename partition(q2);
=====================================
20100533 150 20
20100583 150 20
Hash partition
해쉬함수가 사용되어 테이블마다 값이 균등하게 분포되는 것
장점: 데이터가 균등하게 들어가서 성능이 좋다
단점: 데이터 보관주기에 따라 쉽게 삭제하는 것이 불가능하다. 데이터가 정확하게 어디에 들어가 있는지 파악하기 힘들다.
'SQLP' 카테고리의 다른 글
[SQLP] 쿼리 변환 (0) | 2024.08.19 |
---|---|
[SQLP] 데이터베이스 call 과 네트워크 부하 ★★★★★ (0) | 2024.08.17 |
[SQLP] 커서 공유 (0) | 2024.08.15 |
[SQLP]바인딩 변수 (0) | 2024.08.14 |
[SQLP] 조인 수행 원리2 (0) | 2024.08.13 |