"오라클 테이블 생성"의 두 판 사이의 차이
DB CAFE
(→inittrans maxtrans 처리과정) |
(→INITRANS 와 MAXTRANS) |
||
42번째 줄: | 42번째 줄: | ||
# 2 | # 2 | ||
#:* 기본 | #:* 기본 | ||
− | # 10 ~ 20 | + | # 10 ~ 20 -- 트랜잭션이 빈번하게 발생할것으로 예상되는 테이블 |
− | + | # 15 -- 로그성 테이블 | |
− | # 15 | + | # 30 -- 채번테이블 |
− | + | ||
− | # 30 | ||
− | |||
{{:테이블 inittrans maxtrans}} | {{:테이블 inittrans maxtrans}} | ||
[[category:oracle]] | [[category:oracle]] |
2024년 1월 10일 (수) 20:39 판
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 오라클 테이블 생성 , CREATE TABLE[편집]
The syntax to create a table is:
CREATE TABLE [table name]
( [column name] [datatype], ... );
For 예시:
CREATE TABLE employee
(id int, name varchar(20));
1.1 BLOCK SIZE[편집]
- 8K
- 기본 사이즈
- 32K
- 평균 row size가 커서 8K사용중인 테이블에서 row migration , row chaining이 자주발생할경우
- 한번에 대량 i/o가 발생 하는 테이블인 경우
1.2 PCTFREE[편집]
- 10
- 기본
- 0
- DML이 발생되지 않는 테이블, 백업용 압축테이블
- 20
- Update/Delete 가 빈번하게 발생되는 테이블
- 90
- 채번 테이블
1.3 INITRANS 와 MAXTRANS[편집]
- INITRANS
- 데이터 블록에 동시에 접근 가능한 트랜잭션의 초기 수를 의미
- 트랜잭션이 많이 발생하는 경우 MAXTRANS 까지 늘어나며, PCTFREE 로 확보된 영역에 추가 확장 됨
- MAXTRANS
- 데이터 블록에 접근 가능한 최대 트랜잭션 수를 의미
- 접근하는 트랜잭션 수가 MAXTRNAS 값을 초과하는 경우, 앞의 트랜잭션이 COMMIT 혹은 ROLLBACK 을 해야 다음 트랜잭션이 접근 가능
- INITRANS 를 크게 설정 하면?
- - INITRANS 을 위한 슬롯도 블록에 공간을 차지하며, 트랜잭션이 많지 않은 경우 낭비를 하게 되므로 굳이 크게 설정할 필요 없음
- 2
- 기본
- 10 ~ 20 -- 트랜잭션이 빈번하게 발생할것으로 예상되는 테이블
- 15 -- 로그성 테이블
- 30 -- 채번테이블
1.4 INITRANS 와 MAXTRANS[편집]
- 초기값은 INITRANS의 값으로 정의되며 미리 확보할 ITL entry수를 의미한다.(테이블 생성시 initttans 기본값은 2 임)
- 최대값은 MAXTRANS 값으로 ITL Entry의 최대 수를 의미한다. (기본 255)
- 만약 모든 가용한 ITL이 사용중이고 새로운 ITL 슬롯을 동적으로 할당하기위한 PCTFREE 영역의 공간이 충분하지 않을때는 엔트리를 할당받지 못하여 TX Lock 경합이 발생하게 된다.
- 이때는 ITL entry를 차지한 다른 트랜잭션이 커밋이나 롤백을 수행하여 ITL 슬롯을 재사용할 수 있을때까지 대기한다.
- 오라클은 row단위의 lock을 걸지만 일단 데이터의 Access시 블럭 단위로 엑세스 하므로 결국 block 단위의 lock이 필요하다.