11g R2부터 적용되는 deferred_segment_creation 파라미터에 대한 테스트
* deferred_segment_creation파라미터는 세그먼트를 생성시 익스텐트의 할당을 최초 데이터가
추가될 때까지 지연시킬지를 결정하는 파라미터로서 기본값은 true이다.
* session level에서도 조정이 가능하며 ddl 문장 레벨에서도 사용할 수 있다.
* 요기참조 -> http://jiri.wordpress.com/2010/02/25/what%E2%80%99s-new-in-oracle-11g-r2-%E2%80%93-deferred-segment-creation/
*/
--oracle 11g R2에서 deferred_segment_creation 파라미터 확인
SQL> show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
--테이블 생성
SQL>
create table t
(
a number
);
Table created.
--할당된 extent조회
SQL>
select segment_name, sum(bytes/1024/1024) mbytes
from user_extents
where segment_name = 'T'
group by segment_name;
no rows selected
--데이터 한 건 추가
SQL>
insert into t values(1);
1 row created.
--할당된 extent조회
SQL>
select segment_name, sum(bytes/1024/1024) mbytes
from user_extents
where segment_name = 'T'
group by segment_name;
SEGMENT_NAME MBYTES
--------------------------
T 1
--테이블 삭제
SQL>
drop table t purge;
Table dropped.
--테이블 생성
SQL>
create table t
(
a number
);
Table created.
--할당된 extent조회
SQL>
select segment_name, sum(bytes/1024/1024) mbytes
from user_extents
where segment_name = 'T'
group by segment_name;
no rows selected
--테이블스페이스 move 수행
SQL>
alter table t move tablespace mstora_tbl_ts02;
Table altered.
--할당된 extent조회
SQL>
select segment_name, sum(bytes/1024/1024) mbytes
from user_extents
where segment_name = 'T'
group by segment_name;
SEGMENT_NAME MBYTES
--------------------------
T 10
--테이블 삭제
SQL>
drop table t purge;
Table dropped.
--세션레벨에서 deferred_segment_creation 파라미터 flase로 변경
SQL>
alter session set deferred_segment_creation = false;
Session altered.
--테이블 생성
SQL>
create table t
(
a number
);
--할당된 segment조회
SQL>
select segment_name, sum(bytes/1024/1024) mbytes
from user_extents
where segment_name = 'T'
group by segment_name;
SEGMENT_NAME MBYTES
--------------------------
T 1
--테이블 삭제
SQL>
drop table t purge;
Table dropped.
--segment creation deferred 옵션을 주고 테이블 생성
SQL>
create table t
(
a number
)
SEGMENT CREATION DEFERRED;
Table created.
--할당된 extent조회
SQL>
select segment_name, sum(bytes/1024/1024) mbytes
from user_extents
where segment_name = 'T'
group by segment_name;
no rows selected
--테이블 삭제
SQL>
drop table t purge;
Table dropped.
--segment creation immediate 옵션을 주고 테이블 생성
SQL>
create table t
(
a number
)
SEGMENT CREATION IMMEDIATE;
Table created.
--할당된 extent조회
SQL>
select segment_name, sum(bytes/1024/1024) mbytes
from user_extents
where segment_name = 'T'
group by segment_name;
SEGMENT_NAME MBYTES
--------------------------
T 1
--테이블 삭제
SQL>
drop table t purge;
Table dropped.
댓글 없음:
댓글 쓰기