잘라내기가 DDL 문인 이유는 무엇입니까?
테이블 구조는 문을 잘라낸 후에도 동일하게 유지되며 레코드만 삭제됩니다(자동 커밋 사용).그렇다면 DDL 문을 잘라내는 이유는 무엇입니까?
여기에 몇 가지 설명을 추가하겠습니다.기본적으로 테이블을 자를 때 행만 제거하는 것이 아니라 Oracle Database에서 다음 작업도 수행하도록 암시적으로 지시하는 것입니다.
MINEXTENTS 저장소 매개 변수에 지정된 공간을 제외하고 제거된 행에서 사용하는 모든 공간을 할당 취소합니다.
잘라내기 프로세스에 의해 세그먼트에서 제거된 마지막 익스텐트의 크기로 NEXT 스토리지 매개 변수를 설정합니다.
따라서 저장 정의를 변경하고 워터 하이 마크를 재설정하여 테이블의 구조를 변경합니다.
또한 DML이 될 수 없는 거죠?여기서 절은 지정할 수 없거나 DDL 문과 함께 나옵니다.잘라내기가 DML 문인 경우 Oracle을 통해 where 절과 함께 잘라내기를 사용할 수 있습니다.
참고: SQL의 WHERE 절은 SQL Data Manipulation Language(DML) 문이 지정된 조건을 충족하는 행에만 영향을 주도록 지정합니다.
TRUNCATE테이블의 높은 워터마크를 재설정하여 이전에 존재했던 모든 행을 효과적으로 제거합니다.DDL 문으로 처리하면 DML 문과 같은 실행 취소(롤백) 정보를 유지하지 않고도 작동할 수 있기 때문에 매우 빠르게 작동할 수 있습니다.
간단한 실제 설명은 다음과 같습니다.
잘라내기는 데이터 정의를 변경하여 ID를 다시 초기화하므로 DDL인 반면, 삭제는 테이블에서 레코드만 삭제하고 정의는 변경하지 않으므로 DML입니다.
테이블 이름 작성 및 초기 레코드 삽입과 같은 작업을 수행합니다.
모든 레코드를 삭제하고(절 없음) 레코드를 다시 삽입합니다.ID가 다시 초기화되지 않았습니다.
이제 테이블을 잘라내고 레코드를 다시 삽입합니다.
언급URL : https://stackoverflow.com/questions/26059855/why-is-truncate-a-ddl-statement
'programing' 카테고리의 다른 글
| 루비 연산자 "=~" (0) | 2023.06.19 |
|---|---|
| _method를 정의하기 위해 인수를 전달하는 방법은 무엇입니까? (0) | 2023.06.19 |
| SQL Developer에서 View를 열 수 없음 ->DBA 메뉴(Oracle 12C Standard Edition 설치됨) (0) | 2023.06.19 |
| C에서 메모리 사용량을 줄이기 위한 모범 사례는 무엇입니까? (0) | 2023.06.19 |
| Excel VBA를 사용하여 Internet Explorer 로컬 인트라넷 제어 (0) | 2023.06.19 |


