-
■ CHAR
- CHAR(100)을 설정하고 50byte만 사용하더라도 항상 100byte를 차지한다.
■ 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를 사용한다고 좋은 것만은 아니다.