반응형
구분 | 테이블 정의 | 저장공간 | 작업속도 | Rollback | SQL문 종류 |
DELETE | 존재 | 유지 | 느림 | 가능 | DML |
TRUNCATE | 존재 | 반납 | 빠름 | 불가능 | DDL |
DROP | 삭제 | 반납 | 빠름 | 불가능 | DDL |
TRUNCATE
TRUNCATE TABLE 명령어는 개별적으로 행을 삭제할 수 없으며, 테이블 내부의 모든 행을 삭제합니다.
TRUNCATE TABLE 테이블명;
TRUNCATE TABLE [ { database_name.[ schema_name ]. | schema_name . } ] table_name [ ; ]
TRUNCATE의 특징
- TRUNCATE는 DDL(데이터 정의 언어) 명령입니다.
- TRUNCATE는 테이블 잠금을 사용하여 실행되지만, 각 행은 잠기지 않습니다.
- TRUNCATE와 WHERE 절을 함께 사용할 수 없습니다.(개별적으로 행 삭제 불가능)
- TRUNCATE는 테이블에서 모든 행을 제거합니다.
- 트랜잭션 로그에 한 번만 기록되므로 DELETE보다 성능 면에서 더 빠릅니다.
- 인덱싱 된 VIEW(뷰)와 함께 사용할 수 없습니다.
- 테이블에서 TRUNCATE TABLE 명령어를 사용하려면 테이블에 대한 ALTER 권한이 필요합니다.
- ROLLBACK(실행 취소) 불가능합니다.
- 테이블의 용량이 초기화됩니다.
※ 잠금(Lock) : 삽입, 삭제, 갱신 등의 트랜잭션이 수행되는 동안 특정 테이블 또는 행에 대해 CRUD 작업을 할 수 없음을 의미합니다. 즉, TRUNCATE 명령어가 수행되는 동안 해당 테이블에 다른 트랜잭션 작업을 할 수 없습니다.
DELETE
DELETE 명령어는 테이블의 내부의 행을 모두 삭제하며, WHERE 절을 사용하여 개별적으로 행을 삭제할 수 있습니다.
DELETE FROM 테이블명 WHERE 조건;
[ WITH <common_table_expression> [ ,...n ] ]
DELETE [ TOP ( expression ) [ PERCENT ] ] [ FROM ] { <object> | rowset_function_limited [ WITH ( <table_hint_limited> [ ...n ] ) ] }
[ <OUTPUT Clause> ]
[ FROM <table_source> [ ,...n ] ]
[ WHERE { <search_condition> | { [ CURRENT OF { [ GLOBAL ] cursor_name } | cursor_variable_name } ] } } ]
[ OPTION ( <Query Hint> [ ,...n ] ) ] [; ]
<object> ::=
{ [ server_name.database_name.schema_name. | database_name. [ schema_name ] . | schema_name. ] table_or_view_name }
DELETE의 특징
- DELETE는 DML(데이터 조작 언어) 명령입니다.
- DELETE는 행 잠금을 사용하여 실행됩니다.
- DELETE는 WHERE 절과 함께 사용하여 특정 행을 삭제할 수 있습니다.
- DELETE는 삭제된 각 행에 대해 트랜잭션 로그를 기록합니다. 따라서 TRUNCATE보다 느립니다.
- DELETE 명령어를 사용하려면 테이블에 대한 DELETE 권한이 필요합니다.
- 인덱싱 된 VIEW(뷰)와 함께 사용할 수 있습니다.
- TRUNCATE보다 더 많은 트랜잭션 공간을 사용합니다.
- ROLLBACK(실행 취소)을 할 수 있습니다.
- 테이블의 용량은 감소하지 않습니다.
DROP
기존 테이블의 존재를 모두 없애는 명령어로 테이블의 정의 자체를 완전히 삭제합니다
Rollback 은 불가능하며 테이블 용량도 감소 됩니다.
출처 : https://goddaehee.tistory.com/55, https://developer-talk.tistory.com/258
반응형
'BigData&AI' 카테고리의 다른 글
2023 Best Business Intelligence(BI) Tool (0) | 2023.09.20 |
---|---|
tableau (태블로) 란 - 뤼튼AI 활용 (0) | 2023.01.03 |
클릭센스 (Qlik Sense) 란 - 뤼튼AI 활용 (0) | 2023.01.03 |
데이터레이크 란 - 뤼튼AI 활용 (1) | 2023.01.03 |
고객데이터 관리 플랫폼 종류 (0) | 2022.08.11 |