Dev/Database

[Oracle] TRUNCATE, DELETE, DROP 차이, 테이블 데이터 삭제

알굼 2023. 6. 12. 13:23
반응형

1. 테이블 구조는 남기고 데이터 전체 삭제
  - DDL
  - 트랜잭션 로그에 한번만 기록되므로 성능이 DELETE보다 좋음
  - ROLLBACK 불가능
  - 테이블 용량이 초기화됨

TRUNCATE  TABLE  [테이블명];

 

2. 테이블 존재 자체를 삭제
  - DDL
  - 테이블 정의, 테이블에 대한 데이터, 인덱스, 트리거, 제약조건 및 권한 모두 제거

DROP  TABLE  [테이블명];

 

3. 조건절 이용해서 특정 행만 삭제
  - DML
  - 테이블 용량 감소 X
  - 행 잠금(LOCK)을 사용하여 실행됨
  - 삭제된 각 행에 대해 트랜잭션 로그를 기록하므로 TRUNCATE 보다 느림
  - 인덱싱 된 VIEW 와 함께 사용가능
  - ROLLBACK 가능

DELETE  TABLE  [테이블명]
WHERE  ROWNUM > 2 ;

 

반응형