달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2010. 5. 27. 17:30

TRUNCATE 란? I.lib()/I.lib(Altibase)2010. 5. 27. 17:30

.. .. ..
테이블 자료 삭제 시 아래 명령을 통해서 수행하게 됩니다.
delete from [테이블명];


상기 명령어는 rollback 로그를 남겨야 하기 때문에 데이타가 몇백만, 몇천만이 되버리면 상당한 속도저하를 보여 DB가 죽은 상태로 인식될 수 있습니다. 대용량에서는 위험할 수 있는 부분이죠.

이럴 때를 위해 제공되는 TRUNCATE TABLE 명령어
TRUNCATE TABLE  [테이블명];

TRUNCATE TABLE 은 다음과 같은 특성을 가집니다. 
개별 행 삭제를 로깅하지 않고 모든 행을 테이블에서 제거합니다. TRUNCATE TABLE은 기능상으로 WHERE 절이 없는 DELETE 문과 동일하지만 더 빠르고 시스템 및 트랜잭션 로그 리소스를 덜 사용합니다.

TRUNCATE TABLE은 테이블에서 모든 행을 제거하지만 테이블 구조와 테이블의 열, 제약 조건, 인덱스 등은 그대로 남습니다.게다가 COMMIT 이 필요없습니다. 로깅하지 않기 때문에 바로 삭제가 되버립니다. 대신 ROLLBACK도 되지 않습니다.

* TRUNCATE 는 DDL 명령어기때문에 roolback이 되지 않는다. 그래서 따로 backup 해둔것이 없어 복원이 되지
   않으니 주의가 필요하다.

.
:
Posted by .07274.