[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초
좋아요♥는 블로그 운영에 큰 도움이 됩니다.
'오라클 DB' 카테고리의 다른 글
[Oracle] 오라클 다중 Replace의 대안 [Replace 여러개 방법] (0) | 2022.07.19 |
---|---|
[Oracle] 오라클 잘못된 기본 키입니다 에러 [ORA-02437 을 검증할 수 없습니다] (0) | 2022.07.13 |
[Oracle] 오라클 반복문 FOR, LOOP, WHILE (2) | 2022.01.12 |
[Oracle] 오라클 오픈 커서 수 조회 (1) | 2022.01.05 |
[Oracle] 오라클 비율함수 RATIO_TO_REPORT (1) | 2022.01.05 |