[Oracle] 오라클 TRUNCATE TABLE의 활용 [ORACLE 테이블 조회속도 향상]

정우씨 2022. 6. 27. 15:40

[Oracle] 오라클 TRUNCATE TABLE의 활용 [ORACLE 테이블 조회속도 향상]

 

 개요

어느 날 설계해놓은 데이터 조회 화면이 점점 느려지면서 제니퍼 모니터링 시스템에 빨간 점이 찍히기 시작했어요.

인덱스를 적용하고 오라클 플랜을 확인해도 별 다른 문제가 없는데 속도가 참을 수 없을 정도로 느려서 테이블스페이스 관련 문제가 아닌가 생각하기 시작했어요.

결국 테이블 TRUNCATE를 진행해보기로 합니다.

본 테이블은 데이터 DELETE / INSERT 등 데이터 변동이 자주 있고 약 80만건의 데이터가 있는 테이블입니다.

 

 1.동일 테이블의 생성

CREATE TABLE TMP_TABLE AS
SELECT *
FROM T_BASE;

테이블 생성 후 동일한 WHERE절 조건으로 조회하니 속도가 빨라지는 모습을 확인했어요.

 2. 테이블 TRUNCATE

TRUNCATE TABLE T_BASE;

이번에 테이블 TRUNCATE를 처음으로 해봤어요.

저는 테이블이 아예 제거되는줄 알았는데 테이블 형태는 남아있어서 당황했어요.

 3. 데이터 INSERT

INSERT INTO T_BASE
SELECT *
FROM TMP_TABLE;

TRUNCATE한 테이블로 데이터를 아까 생성한 테이블의 데이터를 다시 적재해줍니다.

 4. 데이터 SELECT / 속도 확인

SELECT *
FROM T_BASE
WHERE RECORD_ID LIKE '%';

테이블 조회속도를 확인합니다.

테이블을 TRUNCATE하니 매우 향상된 속도를 확인할 수 있었습니다

* 기존 조회속도 : 50초

* 개선 조회속도 : 13초

좋아요♥는 블로그 운영에 큰 도움이 됩니다.