일반 delete 문이 느린 이유는 하나씩 삭제하면서 많은 로그를 남기기 때문이다.
delete from 거래;
1. 테이블 레코드 삭제
2. 테이블 레코드 삭제에 대한 undo logging
3. 테이블 레코드 삭제에 대한 redo logging
4. 인덱스 레코드 삭제
5. 인덱스 레코드 삭제에 대한 undo logging
6. 인덱스 레코드 삭제에 대한 redo logging
7. undo (2,5번)에 대한 redo logging
Partition Drop
alter table custom drop partition p202503;
alter table custom drop partition for ('20250301') --> 11g이상. 값을 이용해 대상 파티션 지정이 가능함.
파티션 Truncate를 이용한 대량 데이터 삭제
대량 데이터를 지울 때 남길 데이터만 백업했다가 재입력하는 방식이 빠르다. 아래와 같은 순서로 처리하면 된다.
1. 임시 테이블 생성하고 남길 데이터만 복제한다.
create table 거래_t
as
select *
from custom
where 거래일자 < '20250301'
and 상태코드 = 'zzz'
2. 삭제 대상 테이블 파티션을 truncate 한다.
alter table 거래 truncate partition p20250301;
3.
insert into 거래
select * from 거래_t;
4.
drop table 거래_t;
'IT 기술 > DB 개념' 카테고리의 다른 글
| Lock (0) | 2025.04.16 |
|---|---|
| 파티션을 활용한 대량 INSERT 튜닝 (0) | 2025.04.15 |
| 파티션, 대량 UPDATE 튜닝 (0) | 2025.04.07 |
| 파티션을 활용한 DML 튜닝 (0) | 2025.04.03 |
| Direct Path I/O (0) | 2025.03.29 |