티스토리 뷰
논리적 저장단위 이름이 있는 최소 단위 읽고 쓰는 최소 단위
-이름이 있는 -object
tablespace 만들기
create tablespace ts1 datafile '/home/oracle/ts1.dbf' size 10M;
유저입장 ex)scott
create table x(x varchar2(20))
tablespace ts1;
desc user_tables;
select TABLE_NAME, TABLESPACE_NAME from user_tables;
S SYS> desc dba_tablespaces;
S SYS> desc v$tablespace;
S SYS> desc dba_segments;
S SYS> desc dba_extents;
S SYS> desc v$datafile;
tablespace 공간 부족시 추가 하는 방법
- 데이터 파일 크기 증가
- 데이터 파일에 자동증가 옵션 줌
- T/S 데이터 파일을 추가
3번 방법
alter tablespace ts1 add datafile '/home/oracle/ts1_2.dbf' size 20M;
alter tablespace ts1 add datafile size 20M
extents
delete문 쓰면 공간이 줄어드나? NO
select count(*), sum(bytes) from dba_extents
where owner='SCOTT' and segment_name='X';
COUNT(*) SUM(BYTES)
---------- ----------
24 9437184
delete table x;
COUNT(*) SUM(BYTES)
---------- ----------
24 9437184
해결방법
truncate table x;
COUNT(*) SUM(BYTES)
---------- ----------
1 65536
보는 방법
select blocks,bytes from dba_extents where owner='SCOTT' and segment_name='X'
BLOCKS BYTES
---------- ----------
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
8 65536
128 1048576
17 rows selected.
select count(*), sum(bytes) from dba_extents where owner='SCOTT' and segment_name='X'
COUNT(*) SUM(BYTES)
---------- ----------
17 2097152
database block
free space : update시 chaining 방지를 위해미리 비워둔 공간
(chaining : 공간이 모자라서 다른 블럭을 동시 사용(low하나 읽을때 block을 두개 읽어야 함))
select count(*), sum(blocks), sum(bytes)
from dba_extents where owner='SCOTT' and segment_name='X';
COUNT(*) SUM(BLOCKS) SUM(BYTES)
---------- ----------- ----------
17 256 2097152
update x set x=x||'123123';
65536 rows updated.
select count(*), sum(blocks), sum(bytes)
from dba_extents where owner='SCOTT' and segment_name='X';
COUNT(*) SUM(BLOCKS) SUM(BYTES)
---------- ----------- ----------
18 384 3145728
+1 => update시 공간(freeSpace)이 모자라서 migration 혹은 chaining가 일어나서 공간을 더 사용.
S SCOTT> select rowid "Address", dept.* from dept;
Address DEPTNO DNAME LOC
------------------ ---------- -------------- -------------
AAAMfKAAEAAAAAQAAA 10 ACCOUNTING NEW YORK
AAAMfKAAEAAAAAQAAB 20 RESEARCH DALLAS
AAAMfKAAEAAAAAQAAC 30 SALES CHICAGO
AAAMfKAAEAAAAAQAAD 40 OPERATIONS BOSTON
64진수 = A~Za~z0~9+/
rowid : 64진수(2^6) 숫자 18개로 구성 ==>2^(6*18)=2^(108)=2^100*2^8=(2^10)^10*2^8=1024^10*256=10^(3*10)*256=256*10^30
DB에 들어갈 수 있는 총 row 갯수
객체번호 파일번호 블록 번호 블록내 몇번째 row
실제 사용블럭과 할당된 블럭 보는 방법
사용블럭
select count(distinct substr(rowid,1,15)) from x
COUNT(DISTINCTSUBSTR(ROWID,1,15))
---------------------------------
163
할당된 블럭
select count(*), sum(blocks), sum(bytes)
from dba_extents where owner='SCOTT' and segment_name='X';
COUNT(*) SUM(BLOCKS) SUM(BYTES)
---------- ----------- ----------
18 384 3145728
truncate table x;
select count(distinct substr(rowid,1,15)) from x;
COUNT(DISTINCTSUBSTR(ROWID,1,15))
---------------------------------
0
select count(*), sum(blocks), sum(bytes)
from dba_extents where owner='SCOTT' and segment_name='X'
COUNT(*) SUM(BLOCKS) SUM(BYTES)
---------- ----------- ----------
1 8 65536
insert into x values('adfadfadfadf');
cmmit;
select count(distinct substr(rowid,1,15)) from x
COUNT(DISTINCTSUBSTR(ROWID,1,15))
---------------------------------
1
select count(*), sum(blocks), sum(bytes)
from dba_extents where owner='SCOTT' and segment_name='X'
COUNT(*) SUM(BLOCKS) SUM(BYTES)
---------- ----------- ----------
1 8 65536
OMF (위치와 이름이 자동)
tablespace 만들때 경로 추가해주지 않아도
DB_CREATE_FILE_DEST 파라미터에 지정된 값으로 자동으로 잡아줌
NAME VALUE
-------------------- ------------------------------------------------------
db_create_file_dest /u01/app/oracle/oradata
TABLESPACE DATAFILENAME
---------- ----------------------------------------------------------------
TS1 /home/oracle/ts1.dbf
TS1 /u01/app/oracle/oradata/ORCL/datafile/o1_mf_ts1_5177sh2w_.dbf
TS1 /home/oracle/ts1_2.dbf
ex) create tablespace ts1 size 10M;
Space Management in Tablespaces
Locally managed tablespace - extent 할당 크기가 자동
Dictionary managed tablespace - 과거 버전 호환성
사이즈 수정
ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/ORCL/datafile/ts3.dbf' RESIZE 20M
'DataBase > Oracle' 카테고리의 다른 글
Configuring the Oracle Network Environment (0) | 2010.05.18 |
---|---|
Managing Undo Data (0) | 2010.05.18 |
Port 정보 보는 파일 (0) | 2010.05.18 |
parameter 파일 백업/복구 (0) | 2010.05.18 |
isqlplus dba로 접속하는 방법 (0) | 2010.05.18 |
- Total
- Today
- Yesterday
- 인덱스
- postgresql jsonb
- 한글
- 윈도우
- iOS5
- 아이폰4
- oracle
- 리눅스
- 아이폰
- tablespace
- PostgreSQL
- postgresql pg_stat_activity
- index
- 독도
- Flashback
- 출시일
- parameter
- Backup
- postgresql jsonb index
- iPhone
- 갤럭시S
- 오라클
- Managing Schema Objects
- PL/SQL
- SQLPlus
- recovery
- linux
- MS-SQL
- 투싼
- query 잘림