강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

테이블 저장관계 테스트

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

테이블 저장관계 테스트

 

2m인 tablespace를 생성하고 난 뒤, 테이블을 생성한다.


저장절에서 initial을 2m로 지정하여 생성하려고 하면 에러가 발생한다.


저장절에서 initial를 1m, next를 1m로 지정하여 생성하면, 에러없이 테이블생성이 되나,
next extent할당이 되지 않는다.


테이블 스페이스 생성

SQL> connect system/xxxxxx
연결되었습니다.
SQL> create tablespace ts_test
  2  datafile 'c:oracleoradatamaddog	s_test1.dbf' size 2m;

테이블 영역이 생성되었습니다.

SQL> create user test identified by test
  2  default tablespace ts_test
  3  temporary tablespace temp;

사용자가 생성되었습니다.

SQL> grant connect, resource to test;

권한이 부여되었습니다.


실습1

SQL> connect test/test
연결되었습니다.
SQL> create table test(
  2  id varchar2(9),
  3  name varchar2(10))
  4  storage ( initial 1m next 1m);

테이블이 생성되었습니다.

SQL> select * from user_segments;

SEGMENT_NAME
--------------------------------------------------------------------------------
PARTITION_NAME                 SEGMENT_TYPE       TABLESPACE_NAME
------------------------------ ------------------ ------------------------------
     BYTES     BLOCKS    EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
---------- ---------- ---------- -------------- ----------- -----------
MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUPS BUFFER_
----------- ------------ ---------- --------------- -------
TEST
                               TABLE              TS_TEST
   1064960        130          1        1048576     1048576           1
        505           50          1               1 DEFAULT

SQL> alter table test allocate extent ( size 1m);
alter table test allocate extent ( size 1m)
*
1행에 오류:
ORA-01653: TEST.TEST 테이블을 128(으)로 TS_TEST 테이블스페이스에서 확장할 수
없습니다


SQL> alter table test allocate extent(size 200k);

테이블이 변경되었습니다.

SQL> select * from user_segments;

SEGMENT_NAME
--------------------------------------------------------------------------------
PARTITION_NAME                 SEGMENT_TYPE       TABLESPACE_NAME
------------------------------ ------------------ ------------------------------
     BYTES     BLOCKS    EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
---------- ---------- ---------- -------------- ----------- -----------
MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUPS BUFFER_
----------- ------------ ---------- --------------- -------
TEST
                               TABLE              TS_TEST
   1269760        155          2        1048576     1048576           1
        505           50          1               1 DEFAULT


SQL> alter table test deallocate unused keep 1m;

테이블이 변경되었습니다.

SQL> select * from user_segments;

SEGMENT_NAME
--------------------------------------------------------------------------------
PARTITION_NAME                 SEGMENT_TYPE       TABLESPACE_NAME
------------------------------ ------------------ ------------------------------
     BYTES     BLOCKS    EXTENTS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS
---------- ---------- ---------- -------------- ----------- -----------
MAX_EXTENTS PCT_INCREASE  FREELISTS FREELIST_GROUPS BUFFER_
----------- ------------ ---------- --------------- -------
TEST
                               TABLE              TS_TEST
   1056768        129          1        1048576      204800           1
        505           50          1               1 DEFAULT


SQL> drop table test;

테이블이 삭제되었습니다.


실습2

SQL> create table test(id number)
  2  storage(initial 2m);
create table test(id number)
*
1행에 오류:
ORA-01658: TS_TEST 테이블스페이스에 세그먼트에 대한 INITIAL 확장 영역을 작성할
수 없습니다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  91 명