본문 바로가기
프로그래밍/DB & Redis

Truncate Table

by 뽀도 2015. 8. 24.

출처 :

https://msdn.microsoft.com/ko-kr/library/ms177570(v=SQL.120).aspx

https://community.oracle.com/thread/422792

 

모든 행을 삭제함.

where 절이 없는 delete 문과 동일하지만 더 빠르고 시스템 및 트랜잭션 로그 리소스를 덜 사용.

 

ex )  truncate table  테이블명

---------------------------------------------------------------

 truncate table userInfo

---------------------------------------------------------------

 

 

+ DROP , DELETE , TRUNCATE 차이점

 

DROP 

- 테이블의 정의 자체를 완전히 삭제함

- Rollback 불가능

 

Delete

- 데이터만 삭제

- Commit 이전에는 Rollback이 가능함.

- 데이터를 delete해도 사용했던 strorage는 Release되지 않음

 

Truncate 

- 테이블을 최초 생성된 초기상태로 만듬

- Rollback 불가능

- 테이블이 사용했던 storage중 최초 테이블 생성시 할당된 storage만 남기고 Release.

 

가령 TB_A라는 테이블이 INITIAL EXTENT가 1M, NEXT EXTENT가 1M,
MIN_EXTENTS = 1 이고 데이터가 늘어나 현재 EXTENT가 1500개라면
현재 이 테이블이 보유하고 있는 Storage 1.5GB인데

데이터를 모두 Delete 하면 건수는 0 이지만 Storage는 그대로 1.5GB입니다.
그러나 Truncate를 하면 테이블의 최초 생성상태인 1MB로 Storage가 줄어들게 되지요.

 

 

 

 

반응형

'프로그래밍 > DB & Redis' 카테고리의 다른 글

[DB] CHAR와 VARCHAR 비교  (0) 2015.08.31
저장 프로시저 or 스토어드 프로시저  (0) 2015.08.25
[MSSQL] 단일 사용자 모드 설정/해제  (0) 2015.08.19
[mssql] uniquekey 설정, 해제  (0) 2015.08.13
[MSSQL] Union  (0) 2015.08.12

댓글