HWM 비교

같이 비워도, 읽는 범위는 같지 않습니다

대량 삭제 전에는 테이블의 사용 구간이 끝까지 늘어나 있습니다. DELETE는 빈 블록을 남기고, TRUNCATE는 그 구간 자체를 접습니다.

공유된 시작 상태
대량 적재 후에는 HWM이 세그먼트 끝에 있습니다

삭제 전 테이블

HWM
데이터 블록
데이터 블록
데이터 블록
데이터 블록

DELETE

행을 지우지만 할당된 범위는 그대로 남습니다.

행 단위 삭제

삭제 후 상태

HWM 유지
빈 블록
빈 블록
빈 블록
빈 블록
공간
세그먼트 할당 유지라서 테이블 범위가 바로 줄지 않습니다.
풀 스캔
빈 블록도 범위 안이라 끝까지 읽는 비용이 남습니다.

TRUNCATE

행을 훑지 않고 세그먼트 할당을 한 번에 해제합니다.

공간 범위 재설정

삭제 후 상태

HWM 초기화
시작 구간
뒤쪽 블록은 반환되어 스캔 대상에서 제외
공간
할당이 해제되어 테이블이 다시 작은 범위에서 시작합니다.
풀 스캔
읽을 구간이 짧아져 빈 블록을 훑는 비용이 사라집니다.
대량 DELETE 후에도 풀 스캔이 느리다면, 원인은 남은 행 수보다 유지된 HWM일 수 있습니다. 이때는 REBUILD나 SHRINK가 필요할 수 있습니다.