SQLD 기출문제 예상문제 270번
다음 문제를 풀어보세요.
대용량 배치 프로그램에서 발생하는 아래 SQL의 성능 저하 문제를 해결하기 위한 가장 효과적인 방법은 무엇인가?
[테이블 구조]
CREATE TABLE TRANSACTION_LOG (
TRAN_ID NUMBER(10) NOT NULL PRIMARY KEY,
TRAN_DATE DATE NOT NULL,
TRAN_TYPE VARCHAR2(10) NOT NULL,
AMOUNT NUMBER(15,2) NOT NULL,
DESCRIPTION VARCHAR2(100)
);
[문제 상황]
TRANSACTION_LOG 테이블은 일별 수천만 건의 데이터가 적재되는 대용량 테이블입니다. 매일 새벽 배치 작업을 통해 1년 이상 지난 오래된 데이터를 삭제하는 아래 SQL이 실행되는데, 최근 데이터 증가로 인해 이 DELETE 문이 실행되는 데 몇 시간씩 소요되어 전체 배치 작업의 지연을 유발하고 있습니다.
[현재 SQL]
DELETE FROM TRANSACTION_LOG WHERE TRAN_DATE < TRUNC(SYSDATE) - 365;