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;