문서유형ㅣ기술정보
분야ㅣ모니터링/점검
적용제품버전ㅣT7
문서번호ㅣTMOTI052
개요
INITRANS 파라미터는 Data Block Header 내부의 Transaction Entry(ITL Entry)의 초기 개수를 설정하는 물리적인 속성 파라미터입니다.
INITRANS 값이 10인 경우, 10개의 동시 트랜잭션을 위한 공간을 초기 상태에서 마련합니다.
해당 파라미터는 테이블스페이스, 테이블, 인덱스의 DDL 구문에서 저장 공간의 물리적인 속성을 지정하는 데 사용됩니다.
방법
create table tibero.test (col1 number, col2 char(5)) pctfree 0 initrans 2;
create table tibero.test_itl5 (id number, name varchar(20), address varchar(20)) pctfree 0 initrans 5;블록에서 Transaction이 수행될 때마다 Header 내부의 Transaction Entry를 소모하며, INITRANS는 이에 대한 초기치를 지정합니다.
여러 Transaction이 하나의 Block에 대해 연산을 수행할 경우, 각 Transaction은 각각 해당 Entry를 소모하게 됩니다. 동시에 수행되는 Transaction 수가 많아질수록 사용 중인 Entry의 수도 증가합니다.
초기에 INITRANS만큼 할당된 Entry를 모두 소모하게 되면, 추가로 Entry를 할당해야 하며, 이렇게 할당된 Entry는 이후에도 다시 해제되지 않습니다.
ITL Entry의 할당은 Block의 Free Space를 이용하여 수행됩니다.
즉, INITRANS는 동시에 같은 블록에 접근할 수 있는 트랜잭션 개수의 초기값으로 이해하시면 됩니다.
동일 Data Block에 동시 Transaction 수가 적은 경우
여러 Transaction Entry가 동시에 사용될 가능성이 낮으므로, 이 경우에는 낮은 INITRANS 값을 설정하셔도 무방합니다.
-
이 경우 낮은 INITRANS 값으로 인해 Block의 공간을 절약할 수 있다는 장점이 있습니다.
동일 Data Block에 동시 Transaction 수가 많은 경우
여러 Transaction Entry가 동시에 사용되며, INITRANS 값이 낮을 경우 INITRANS 수를 초과하는 Transaction Entry를 추가로 할당해야 합니다. 이로 인해 추가적인 CPU 부담이 발생할 수 있습니다.
이러한 경우에는 INITRANS 값을 다소 높게 설정하시면 됩니다.
다만 INITRANS 값을 높일 경우, 해당 공간만큼 Block에서 실제로 사용할 수 있는 공간은 줄어들게 됩니다.
Tibero INITRANS 기본값
Tibero의 INITRANS 기본값은 다음과 같습니다.
일반적으로 Table의 기본 INITRANS 값은 2입니다.
Cluster 및 Index의 기본 INITRANS 값은 2입니다.
MAXTRANS는 255로 설정됩니다.
아래 쿼리를 통해 변경이 가능합니다.
alter table TABLE_NAME maxtrans 10;
권고사항
INITRANS는 기본값 사용을 권고합니다.
추가 Entry를 할당하는 데 소요되는 비용은 크지 않으며, CPU 사용량이 크게 증가하지는 않습니다.
다만 여러 개의 Transaction이 동일한 Block에 접근하는 경우, 동적으로 Entry가 할당되면서 일정 수준의 부하가 발생할 수 있습니다.
해당 부하가 발생할 확률은 높지 않으나, 업무 형태에 따라 간과해서는 안 되는 파라미터입니다.
참고