개발자가 실제 해당 명령어를 수행하는 경우는 드물다.
통상 DML(Insert, Update, Delete)와 Select 외에는 구축 단계에서 Create table/index 정도?
실제 운영중에
1. 파티션 드랍 > Truncate table TCCL_DATA(테이블명) drop p201902(파티션명).
2. 테이블 드랍 > Truncate table TCCL_DATA
2경우일텐데, 로그테이블의 경우 과거 테이블은 추가 적재가 없으니, 우려가 안될텐데, 혹시나 운영중인 테이블의 drop에대해 혹시 lock이 발생하지 않을까 우려하는 사람을 위해 적는다.
TRUNCATE TABLE 은 DDL이다. 즉, 데이터를 삭제하는게 아니라 해당 테이블을 새로 만든다고 생각하면 된다. 그러면 테이블이 재구성되기 때문에, 삭제로 인한 아카이브로그 파일이 커지거나 데이터 량에 따른 시간이 필요하지 않다.
5억건의 데이터를 truncate 하는데 걸리는 시작은 "즉시" 이다. 3초? 5초? 아니..즉시 바로 처리된다.
truncate 로 인한 테이블의 lock은 걱정하지 말자.
'개발자 넋두리 > DB 장애났어...' 카테고리의 다른 글
tibero, oracle, netezza Database 비교 (0) | 2023.04.21 |
---|---|
이중화(RAC)된 오라클의 DB 가동 명령어 (0) | 2019.09.09 |
오라클 통계정보 (0) | 2019.09.06 |
Oracle 의 Shrink 기능(절대 주의!!!) 사용하기 전에 필독! (0) | 2019.06.08 |
[오라클] 배치 등 작업의 수행속도가 느린 경우. (0) | 2019.05.14 |