2008년 02월 06일
[펌] alter table ... allocate extent 문 - DBA_EXTENTS
From : http://radiocom.kunsan.ac.kr/lecture/oracle/statement_alter/alter_table_allocate_extent.html
alter table ... allocate extent 문
data load시 현재의 extent보다 큰 데이터를 load할 경우 extent 할당이 동적으로 발생하여 할당에 대한 overhead가 발생할 수 있다.
뿐만 아니라 load하다가 공간이 부족해서 error를 발생시킬 수도 있다. 이러한 현상을 사전에 방지하기 위하여 alter table 명령을 이용하여 extent를 수동으로 할당한다.
alter table ... allocate extent 문
data load시 현재의 extent보다 큰 데이터를 load할 경우 extent 할당이 동적으로 발생하여 할당에 대한 overhead가 발생할 수 있다.
뿐만 아니라 load하다가 공간이 부족해서 error를 발생시킬 수도 있다. 이러한 현상을 사전에 방지하기 위하여 alter table 명령을 이용하여 extent를 수동으로 할당한다.
extent가 할당되는 경우는 다음과 같은 경우이다.
• segment가 생성될 때
• segment가 확장될 때(extent가 다차서 자동으로 오라클 서버가 할당하는 경우)
• table이 변경될 때
【형식】extent 해제를 위한 alter table 명령어
ALTER TABLE 테이블명
ALLOCATE EXTENT
(SIZE 숫자 DATAFILE 'file의 이름과 경로');
여기서
• ALLOCATE EXTENT : EXTENT를 할당하기 위해 사용하는 명령
• SIZE : EXTENT가 할당되는 크기
• DATAFILE 'file의 이름과 경로' : 새로 할당될 extent의 위치를 나타냄
【예제】
SQL> conn system/manager as sysdba
Connected.
SQL> select segment_name, extent_id, block_id, bytes, blocks
2 from dba_extents
3 where segment_name='EMP';
SEGMENT_NAME
--------------------------------------------------------------------------------
EXTENT_ID BLOCK_ID BYTES BLOCKS
---------- ---------- ---------- ----------
EMP
0 25 65536 8
SQL> alter table emp
2 allocate extent
3 (size 10k datafile '/export/home/oracle/app/oracle/oradata/orcl/data03.dbf');
할당된 extent가 사용되지 않는다면, 공간의 낭비를 초래할 수 있기 때문에 할당된 공간을 해제하면 그 공간을 다른 데이터를 저장하기 위해 사용되어질 수 있다.
【형식】
ALTER TABLE 테이블명
ALLOCATE UNUSED;
# by | 2008/02/06 12:37 | Oracle | 트랙백(1)




제목 : [펌] dba_extents
[펌] alter table ... allocate extent 문 - DBA_EXTENTS From : http://radiocom.kunsan.ac.kr/lecture/oracle/dictionary/dba_extents.html dba_extentsextents에 관한 정보를 담고 있다. SQL> select owner, segment_name, bytes, blocks 2> from dba_extents; ......more