LOB, LONG, LONG RAW 데이터 타입의 비교
- 테이블의 한 ROW에 여러 LOB 컬럼이 있을 수 있는 반면, LONG 또는 LONG RAW 컬럼은 한 ROW에 하나 만 사용 할 수 있다.
- LOB는 사용자 정의 데이터 타입 ( user-defined datatype)의 속성 (attribute)으로 사용 될 수 있는 반면, LONG이나 LONG RAW는 속성으로 사용 될 수 없다.
- LONG 또는 LONG RAW는 값 전체가 테이블 내에 저장이 되는 반면, LOB는 테이블 컬럼 내에 LOB locator만 저장이 된다.
- BLOB과 CLOB (내부 LOB) 데이터는 별도의 테이블 스페이스에 저장시킬 수 있으며, BFILE (외부 LOB) 데이터는 데이터베이스 외부의 별도 파일로 존재한다. 따라서 LOB 컬럼을 액세스 할 경우에는, locator 값만 return 되는 반면, LONG이나 LONG RAW 컬럼을 액세스할 경우에는, 전체 값이 return 된다.
- LOB 데이터는 4GB까지 저장이 가능하며, BFILE 컬럼이 가리키는 파일 크기는 4GB 이내에서 OS에서 지원하는 최대 크기까지 가능하다. 한편 LONG이나 LONG RAW 데이터 타입에서는 2GB 까지만 지원이 가능하다.
- 데이터에 대한 랜덤 액세스 기능 또는 데이터 조작을 할 경우 LOB를 사용하는 것이 LONG 또는 LONG RAW를 사용하는 것에 비해 훨씬 많은 기능을 사용할 수 있다.
- LOB는 랜덤 액세스가 가능한 반면, LONG 타입에 저장된 데이터는 처음부터 원하는 지점까지 순차적으로 읽어 처리하여야 한다.
- LOB 데이터에 대한 replication을 local 또는 remote에서 수행할 수 있는 반면, LONG / LONG RAW 컬럼 데이터는 replication이 되지 않는다.
- LONG 컬럼의 데이터는 TO_LOB()라는 함수를 사용하여 LOB으로 변환 가능하지만, LOB을 LONG / LONG RAW로 변환하는 기능은 제공되지 않는다.
LOB 데이터 타입의 제약 사항
- LOB는 클러스터 테이블에서는 사용할 수 없으며, 따라서 클러스터 키로도 사용할 수 없다.
- LOB 컬럼은 GROUP BY, ORDER BY, SELECT DISTINCT 등에 사용할 수 없으며, JOIN에도 사용할 수 없다.
- LOB 컬럼은 ANALYZE ... COMPUTE/ESTIMATE STATISTICS 명령 사용 시에도 Analyze 되지 않는다.
- LOB는 파티션된 IOT(Index Organized Table)에는 사용할 수 없다. 그러나 파티션 되어 있지 않은 IOT에는 사용할 수 있다.
- LOB는 VARRAY에는 사용할 수 없다.
- NCLOB은 OBJECT TYPE의 속성(attribute)으로 사용될 수 없으나, 메소드 정의 하는데는 NCLOB 파라미터를 사용할 수 있다.
'이전것 > 데이터베이스' 카테고리의 다른 글
4.1. 데이터의 삽입, 수정, 삭제 (0) | 2016.11.11 |
---|---|
3.5. 테이블의 관리 (0) | 2016.11.10 |
3.3. 오라클 데이터 타입 (0) | 2016.11.10 |
3.2. 테이블의 제약조건 (0) | 2016.11.10 |
3.1. 테이블의 생성 (0) | 2016.11.09 |