[출처] http://blog.naver.com/ace2805?Redirect=Log&logNo=70074627223
각 구성 요소의 확인
---------------------------------
select * from dba_tablespaces;
select * from dba_data_files;
select * from dba_temp_files;
---------------------------------
create tablespace ik_ts
datafile '/home/oracle/oradata/orcl/ik_ts01.dbf' size 10m autoextend on next 10m maxsize 2g,
'/home/oracle/oradata/orcl/ik_ts02.dbf' size 20m;
으로 tablespace를 생성 하자.
SCOTT> create table t1(no number); --> 일반적인 table 생성 명령어는 default tablespace에 생성 된다.
SCOTT> create table t1(no number)
tablespace ik_ts; --> ik_ts01.dbf , ik_ts02.dbf 파일은 2개로 구성되어 있지만 두 파일을 합친것이
ik_ts tablespace 한개가 되는것이며. 어느쪽의 datafile 에 넣을지는 오라클이 결정한다.
=== 현제 ik_ts tablespace의 상태이다. ===
현제 ik_ts는 2개의 datafile로 이루어진 tablespace로써 만들어진 segment 는 0개 extent 는 2개가 된다.
datafile 과 extent 의 관계가 1:1 이 될수 있는 이유는 위와 같이 각각의 file이 있고 file Header 이외의 연속된 공간이
1개인 상태의 extent 의 상태가 datafile 과 extent의 관계가 1:1의 관계가 되는 상태가 된다.
----------------------------------------------------------------------------------------------------------------
2> 여기서 table g 를 생성 하게 될 경우 8개의 블럭으로 구성된 1개의 extent를 할당 받게 된다.
create table g tablespace ik_ts as select * from emp; --> segment 는 1개 (table g) 가 된다. extent는 3개 가 된다.
ik_ts01.dbf 데이터 파일에 table g가 생성됨으로써 datafile 과 extent 의 관계가 1:1이 아니게 된다.
데이터의 양이 늘어 기본할당된 8개의 블럭이 모두 사용되면 추가로 8개의 블럭으로 구성된 extent 를 추가로 할당하게 된다.
segment 는 1개 (table g) , extent 는 4개 가 된다.
순서는 다음과 같다
블럭 Header -> extent1(g) -> extent2(g의 추가할당) -> 이때 또 다른 table Z를 생성할 경우 8개의 블럭으로 된 1개의 extent(Z)가
할당되게 된다.
그후에 table g 의 데이터 양이 늘어나 추가 extent의 할당이 필요하게 될경우 다음과 같은 순서가 된다.
블럭 Header -> extent1(g) -> extent2(g의 추가할당) -> extent3(Z) -> extent4(g) 로 되며
이때 segment 는 g , z 2개가 되며 extent 는 6개가 된다.
select * from dba_segments where owner = 'SYS' and segment_name = 'G'; --> segment ( g ) 에 대한 정보
select * from dba_extents where owner = 'SH' and segment_name = 'G'; --> 사용한 extents 의 정보
[출처] TABLESPACE, SEGMENT, EXTENT|작성자 DEMON
'OraclE' 카테고리의 다른 글
ALL_PART_KEY_COLUMNS (0) | 2010.05.11 |
---|---|
User & Privilege & Role [펌] (0) | 2010.04.06 |
ORA-28002 : the password will expired within N days. 해결 방법 [펌] (0) | 2010.03.02 |
(10G) TRANSACTION ROLLBACK을 하는 문장을 찾는 방법과 ROLLBACK 시간 예상하기 (0) | 2010.02.23 |
scott 생성 (0) | 2010.02.17 |