본문 바로가기
데이터베이스

[DB][Oracle] DBMS_LOB 함수 성능테스트

by 커피는아아 2020. 11. 18.
반응형

[DB][Oracle] 오라클 DBMS_LOB 함수 성능테스트

/* LOB인 데이터를 가져올 때 사용하는 방식 */
    SELECT
        DBMS_LOB.SUBSTR(WORK_PLAN, DBMS_LOB.GETLENGTH(WORK_PALN)) AS WORK_PLAN
    FROM
        COLUMN_A
  • 오라클에서 함수를 사용하지 않고도 조회가 가능한데 이런식으로 한 이유는 잘 모르겠다 (성능이 더 좋은가?...)
  • stackoverflow에서 DBMS_LOB.GETLENGTH의 경우 BLOB 데이터 타입에 사용하면 기존 length함수가 number of character를 return 하는 것과는 달리 btye length를 return 한다고 한다.

성능 테스트

SELECT
	DBMS_LOB.SUBSTR(WORK_PLAN, DBMS_LOB.GETLENGTH(WORK_PALN)) AS WORK_PLAN
FROM
	COLUMN_A
/* 0.12sec */

SELECT
	WORK_PLAN
FROM
	COLUMN_A
/* 1.72 sec */

SELECT
	SUBSTR(WORK_PLAN,0,LENGTH(WORK_PLAN))
FROM
	COLUMN_A
/* 1.65 sec */
  • 데이터가 많지 않음에도 불구하고 LOB관련 함수를 사용했을 때와 아닐 때의 유의미한 차이를 보였다.