테이블의 maxtrans를 1로 설정하기 0 2 2,751

by 지호준 healblue [2009.04.08 00:25:47]


  [환 경]

oracle 10.2.0.1.0

tablespace: 8k block, manual segment space management 

 테이블의 maxtrans를 1로 설정하고자 합니다.

SQL> create table tab1(
  2  col1 number, col2 varchar2(2000))
  3  initrans 1 maxtrans 1
  4  /

SQL> select ini_trans, max_trans from dba_tables where table_name = 'TAB1';

 INI_TRANS  MAX_TRANS
---------- ----------
     1      255

 max_trans가 255로 설정이 되었습니다.
 강제로 20으로 변환해보았습니다.

SQL> alter table tab1 maxtrans 20;
Table altered.
SQL> select ini_trans, max_trans from dba_tables where table_name = 'TAB1';
 INI_TRANS  MAX_TRANS
---------- ----------
     1      255
여전히 255로 max_trans가 고정되어 있습니다. 혹시나 하고 initrans를 변경해보았습니다.
SQL> alter table tab1 initrans 10;
Table altered.
SQL> select ini_trans, max_trans from dba_tables where table_name = 'TAB1';
 INI_TRANS  MAX_TRANS
---------- ----------
    10      255

initrans는 잘 변경이 됩니다. 무엇 좀 실험하려고 maxtrans를 1로 설정하려고 하는데 변경이 안되니 은근히 오기가 나네요.

이리 저리 자료를 찾다가 질문을 올립니다. 테이블 스페이스는 ASSM이 아닙니다. 답변 미리 감사드립니다.

 

by 타락천사 [2009.04.08 08:23:52]
메뉴얼 내용입니다.(10G R2)
마지막 구절을...

MAXTRANS Parameter

In earlier releases, the MAXTRANS parameter determined the maximum number of concurrent update transactions allowed for each data block in the segment. This parameter has been deprecated. Oracle now automatically allows up to 255 concurrent update transactions for any data block, depending on the available space in the block.

Existing objects for which a value of MAXTRANS has already been set retain that setting. However, if you attempt to change the value for MAXTRANS, Oracle ignores the new specification and substitutes the value 255 without returning an error.

by sleeperbus [2009.04.08 08:58:16]
아... 역시 RTFM을 했어야 하는데 집에서 쓰는 맥에서는 오라클 접속 문제가 좀 있어서 레퍼런스를 못 뒤졌네요. 감사합니다. ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입