[펌] 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를 수동으로 할당한다.

extent가 할당되는 경우는 다음과 같은 경우이다.
• segment가 생성될 때
• segment가 확장될 때(extent가 다차서 자동으로 오라클 서버가 할당하는 경우)
• 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 명령어

할당된 extent가 사용되지 않는다면, 공간의 낭비를 초래할 수 있기 때문에 할당된 공간을 해제하면 그 공간을 다른 데이터를 저장하기 위해 사용되어질 수 있다.

【형식】

ALTER TABLE 테이블명
ALLOCATE UNUSED;

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 오서비네 | 2008/02/06 12:37 | Oracle | 트랙백(1)

Tracked from 오서비네 이글루 at 2008/02/06 12:39

제목 : [펌] 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

<< 이전 페이지     다음 페이지 >>