제일 잘 나온 내용이라 발췌~

 

 

출처

http://www.okjsp.pe.kr/seq/2035

 

delete,truncate,drop문의 비교.
DELETE, DROP, TRUNCATE의 비교
----------------------------------------------------------------

TABLE에서 행을 삭제하는 세 가지 OPTION의 비교

TABLE에서 모든 행을 삭제하는 방법에는 다음과 같은 세 가지 OPTION이 있다.

1. DELETE 명령어 사용

DELETE 명령어를 사용하여 TABLE의 행을 삭제할 수 있다.
예를 들어 EMP TABLE에서 모든 행을 삭제하는 명령문은 다음과 같다.

DELETE FROM emp;

O. DELETE 문을 사용할 때 TABLE이나 CLUSTER에 행이 많으면 행이 삭제 될 때마다 많은 SYSTEM 자원이 소모된다. 예를 들어 CPU 시간,REDO LOG 영역, TABLE이나 INDEX에 대한 ROLLBACK SEGMENT 영역 등의 자원이 필요하다.
O. TRIGGER가 걸려있다면 각 행이 삭제될 때 실행된다.
O. 이전에 할당되었던 영역은 삭제되어 빈 TABLE이나 CLUSTER에 그대로 남아 있게 된다.

2. DROP 과 CREATE 명령어 사용

TABLE을 삭제한 다음 재생성할 수 있다. 예를 들어 EMP TABLE을 삭제하고 재생성하는 명령문은 다음과 같다.

DROP TABLE emp;
CREATE TABLE emp (......);

O. TABLE이나 CLUSTER를 삭제하고 재생성하면 모든 관련된 INDEX, CONSTRAINT,TRIGGER도 삭제되며, 삭제된 TABLE이나 CLUSTERED TABLE에 종속된 OBJECTS는 무효화 된다.
O. 삭제된 TABLE이나 CLUSTERED TABLE에 부여된 권한도 삭제된다.

3. TRUNCATE 명령어 사용

SQL명령어 TRUNCATE를 사용하여 TABLE의 모든 행을 삭제할 수 있다.
예를 들어 EMP TABLE을 잘라내는 명령문은 다음과 같다.

TRUNCATE TABLE emp:

O. TRUNCATE 명령어는 TABLE이나 CLUSTER에서 모든 행을 삭제하는 빠르고 효율적인 방법이다.
O. TRUNCATE 명령어는 어떤 ROLLBACK 정보도 만들지 않고 즉시 COMMIT한다.
O. TRUNCATE 명령어는 DDL 명령문으로 ROLLBACK될 수 없다.
O. TRUNCATE 명령문은 잘라 버릴 TABLE과 관련된 구조(CONSTRAINT, TRIGGER 등)과 권한에 영향을 주지 않는다.
O. TRUNCATE 명령문은 현재 TABLE에 할당된 영역을 잘라버린 후에 포함되는 TABLESPACE로 복귀되도록 지정한다.
(REUSE STORAGE, DROP STORAGE OPTION 사용)
- DROP STORAGE OPTION 사용 시 : TABLE EXTENTS 수를 MINEXTENTS의 원래 설정값으로 줄인다.
해제된 확장영역은 SYSTEM에 복귀되며, 다른 OBJECTS가 사용할 수 있다.
- REUSE STORAGE OPTION 사용 시 : 현재 TABLE이나 CLUSTER에 할당된 모든 영역이 할당된 채로 남아 있도록 지정한다.
O. TRUNCATE 명령문이 TABLE에서 ROW를 삭제하면 해당 TABLE에 걸려 있는 TRIGGER는 실행되지 않는다.

O. AUDIT 기능이 ENABLE되어 있으면, TRUNCATE 명령문은 DELETE문에 해당하는 AUDIT 정보를 생성하지 않는다. 대신 발생한 TRUNCATE 명령문에 대한 단일 AUDIT RECORD를 생성한다.

* HASH CLUSTER는 잘라버릴 수 없다.

또한 HASH CLUSTER나 INDEX CLUSTER 내의 TABLE도 개별적으로 잘라버릴 수 없다.
INDEX CLUSTER를 잘라버리면 CLUSTER에 있는 모든 TABLE의 모든 ROW가 삭제된다.
모든 ROW가 각각의 CLUSTERED TABLE에서 삭제되어야 한다면 DELETE 명령어를 사용하거나 TABLE을 삭제하고 재생성한다.

from koug

laalaal~

Posted by 김용환 '김용환'

댓글을 달아 주세요