VARCHAR2 데이터 유형보다 CLOB 데이터 유형을 사용하는 것이 부정적입니까? 4KB 미만인 대부분의 문자열을 저장해야하는 경우?오라클 - VARCHAR 열 대 4 K 행 미만의 행을 포함하는 CLOB 열의 성능이 저하 되었습니까?
here A부터 CLOB 테이블의 나머지 데이터와 상기 데이터 블록에 저장된 LOB 세그먼트에 대한 포인터, 별도 LOB 세그먼트에 저장 될 수있다. CREATE TABLE 문이있는 경우 LOB 저장 영역 절을 사용하여 LOB 세그먼트가 저장되는 위치를 제어 할 수 있습니다. 기본적으로 약 4000 바이트 미만의 LOB는 VARCHAR2와 동일한 방식으로 저장됩니다. 즉, 나머지 데이터와 인라인됩니다. here에서
는 :
당신이 CLOB 열이있는 테이블을 만듭니다 CLOB에 대한 '행 스토리지를 사용'이라는 옵션이 있습니다. 이것은 CLOB가 테이블과 같은 세그먼트에 저장되었는지, 따라서 테이블 행의 나머지 부분과 함께 저장되는지 또는 별도의 세그먼트에 저장되는지 여부를 지정합니다. 두 번째 경우에는 테이블 행에 CLOB 데이터의 위치에 대한 포인터가 포함됩니다. 일반적으로 테이블 행과 함께 CLOB를 저장하는 것이 더 효율적이지만 CLOB가 약 4000 자보다 긴 경우 더 이상 행에 저장 될 수 없으며 행의 저장 영역이 사용 가능한지 여부에 관계없이 CLOB 세그먼트에 저장됩니다 아닙니다.
이 문장에서 모든 행에 4K 행 미만이 포함되어 있어도 열을 CLOB로 선언 할 경우 패널티가 전혀없는 것처럼 들립니다. 정확합니까? 당신은 예를 들어, LOB 데이터 유형을 사용할 때
데이터가 연속으로 저장 되더라도 추가 왕복은 어떻게됩니까? –
@MatthewMoisen 내가 아는 한 동작은 사용하는 드라이버 나 설정에 따라 다르지만 동일한 왕복 시간 내에 LOB 데이터를 가져올 수없는 SQL * Plus의 간단한 예제를 추가했습니다. – Husqvik