출처 :
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 |
댓글