728x90
반응형
4) TRUNCATE
테이블 전체 삭제 명령어인데 구조를 변경하는 DDL에 포함되어있는 게 특징이다.
auto commit이기 때문이며, 즉시 반영되고 rollback으로 돌릴 수 없다.
recyclebin에도 남아있지 않으며 redo log에도 기록을 하지 않는다.
즉 '데이터 변경 내용을 저장하지 않고 즉시 삭제' 하는데 이 의미는
(1) 데이터 변경 내용을 어딘가에 저장하고 동작이 되게끔 하면 다시 과거로 갈 수 있다. 그런데 저장하지 않는다고 하니 복구가 되지 않는다는 의미이다. 데이터를 삭제하면 redo에서 다시 데이터를 긁어오는건데 그렇게 되지 않는다.
(2) 속도의 차이가 많이 발생하므로 전체 데이터를 싹 지우면 속도가 더 빨라짐.
예를들어 100기가 테이블 사이즈를 delete로 지우면 기록 삭제하기 때문에 2시간 정도 소요되나 TRUNCATE는 3초면 끝난다. 정말 위험한 문장이니 주의하여 사용하여야 한다.
728x90
반응형
'배우기 > 복습노트[oracle sql]' 카테고리의 다른 글
[실습문제] 2023. 11. 7.(화) 문제 풀이(3문제) (0) | 2023.11.09 |
---|---|
[복습] data를 unload 하는 방법 및 데이터 DB화 방법 두 가지 + 복습(20231107) (1) | 2023.11.09 |
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 ALTER (0) | 2023.11.08 |
[복습] SQL | Oracle SQL의 분류(DDL, DML, DCL, TCL, DQL) 중 DDL의 DROP (0) | 2023.11.07 |
[복습] 2023. 11. 6.(월) 문제 풀이(5문제) (0) | 2023.11.07 |