본문 바로가기

배우기/복습노트[oracle sql]

[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 TRUNCATE

728x90
반응형

4) TRUNCATE

테이블 전체 삭제 명령어인데 구조를 변경하는 DDL에 포함되어있는 게 특징이다. 

auto commit이기 때문이며, 즉시 반영되고 rollback으로 돌릴 수 없다.

recyclebin에도 남아있지 않으며 redo log에도 기록을 하지 않는다.

 

즉 '데이터 변경 내용을 저장하지 않고 즉시 삭제' 하는데 이 의미는

(1) 데이터 변경 내용을 어딘가에 저장하고 동작이 되게끔 하면 다시 과거로 갈 수 있다. 그런데 저장하지 않는다고 하니 복구가 되지 않는다는 의미이다. 데이터를 삭제하면 redo에서 다시 데이터를 긁어오는건데 그렇게 되지 않는다.

(2) 속도의 차이가 많이 발생하므로 전체 데이터를 싹 지우면 속도가 더 빨라짐.

예를들어 100기가 테이블 사이즈를 delete로 지우면 기록 삭제하기 때문에 2시간 정도 소요되나 TRUNCATE는 3초면 끝난다. 정말 위험한 문장이니 주의하여 사용하여야 한다.

 

 

 

728x90
반응형