-
[데이터베이스] CHAR, VARCHAR2공부/데이터베이스 2022. 12. 21. 17:11
■ CHAR
명칭 설명 CHAR 고정적 - CHAR(100)을 설정하고 50byte만 사용하더라도 항상 100byte를 차지한다.
■ VARCHAR2
명칭 설명 VARCHAR2 가변적 - VARCHAR2(100)으로 설정하고 50byte만 사용하였다면 남은 50byte를 다음 컬럼으로 넘겨준다.
- 디스크를 1K로 만들면 작업을 위한 프리 스페이스(엑스트라 스페이스)가 10% 여유 공간으로 만들어진다.
- 50byte를 이미 사용하고 있는데 Update, Insert 등으로 설정한 100byte가 넘게되었으면 프리스페이스에서 블록체인으로 연결되어 작업을 하게된다.
- 만약에 Update나 Insert를 통해 수정이나 삽입을 할 때 프리스페이스 공간보다 크면 Migration 현상이 일어나게 된다.
■ VARCHAR2 - Migration
- 100byte가 다 채워졌고 추가적인 작업으로 1~10까지 추가적으로 500byte가 더 필요하다고 가정해보자
- 10% 여유분을 준 프리스페이스에서 100byte를 처리하고 남은 400byte를 Migration으로 디스크를 새로 늘린다.
- Migration은 속도저하의 원인이 되기 때문에 이처럼 무작정 VARCHAR2를 사용한다고 좋은 것만은 아니다.
'공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] Segment Header, FreeList, BitMap, HighWaterMark(HWM) (0) 2022.12.21 [데이터베이스] Parsing(구문 분석) (0) 2022.12.21 [데이터베이스] Oracle 저장 구조 Extent, Segment (0) 2022.12.21 [데이터베이스] Oracle DML Lock (1) 2022.12.20 [데이터베이스] Oracle System file, Data file, Undo Segment, Redo Log Files, Archived Read Log Files (0) 2022.12.20