drop,truncate,delete 의 차 이 를 초 알 고 있 습 니 다.

4001 단어 droptruncatedelete
(1)DELETE 문 구 를 삭제 하 는 과정 은 표 에서 한 줄 을 삭제 할 때마다 이 줄 의 삭제 작업 을 트 랜 잭 션 기록 으로 로그 에 저장 하여 스크롤 백 작업 을 할 수 있 도록 합 니 다.
TRUNCATETABLE 는 표 에서 모든 데 이 터 를 한꺼번에 삭제 하고 단독 삭제 작업 기록 을 로그 에 기록 하지 않 으 며 삭제 줄 은 복구 할 수 없습니다.또한 삭제 과정 에서 표 와 관련 된 삭제 트리거 를 활성화 하지 않 습 니 다.실행 속도 가 빠르다.
(2)표 와 색인 이 차지 하 는 공간.
표 가 TRUNCATE 에 있 으 면 이 표 와 색인 이 사용 하 는 공간 은 초기 크기 로 회 복 됩 니 다.
DELETE 작업 은 표 나 색인 이 사용 하 는 공간 을 줄 이지 않 습 니 다.
drop 문 구 는 표 가 차지 하 는 공간 을 모두 방출 합 니 다.
(3)일반적으로 drop>truncate>delete
(4)응용 범위.
TRUNCATE 는 TABLE 에 만 대응 할 수 있 습 니 다.DELETE 는 table 과 view 일 수 있 습 니 다.
(5)TRUNCATE 와 DELETE 는 데이터 만 삭제 하고 DROP 는 표(구조 와 데이터)전 체 를 삭제 합 니 다.
(6)truncate 와 where 가 없 는 delete:데이터 만 삭제 하고 표 의 구조(정의)drop 문 구 를 삭제 하지 않 으 면 표 의 구조 가 의존 하 는 제약(constrain),트리거(trigger)색인(index)을 삭제 합 니 다.이 표 에 의존 하 는 저장 과정/함 수 는 보존 되 지만 그 상 태 는 invalid 로 변 합 니 다.
(7)delete 문 구 는 DML(datamaintaineLanguage)입 니 다.이 동작 은 rollback segment 에 넣 고 트 랜 잭 션 을 제출 해 야 유효 합 니 다.해당 tigger 가 있 으 면 실행 할 때 실 행 됩 니 다.
(8)truncate,drop 은 DLL(datadefinelanguage)로 작업 이 즉시 유효 합 니 다.원래 데 이 터 는 rollback segment 에 넣 지 않 고 스크롤 백 할 수 없습니다.
(9)백업 없 이 drop 과 truncate 를 신중하게 사용 합 니 다.일부 데이터 줄 을 삭제 하려 면 delete 를 사용 하고 where 와 결합 하여 영향 범 위 를 제약 해 야 합 니 다.스크롤 백 구간 은 충분히 커 야 한다.시계 용 drop 삭제 하기;시 계 를 보류 하고 표 의 데 이 터 를 삭제 하려 면 사무 와 무관 하 다 면 truncate 를 사용 하면 됩 니 다.업무 와 관련 이 있 거나 선생님 이 trigger 를 터치 하려 면 delete 를 사용 하 십시오.
(10)Truncatetable 표 명 은 속도 가 빠 르 고 효율 이 높 습 니 다.왜냐하면:
truncatetable 은 기능 적 으로 WHERE 자구 가 없 는 DELETE 문구 와 같 습 니 다.둘 다 표 의 모든 줄 을 삭제 합 니 다.그러나 TRUNCATETABLE 는 DELETE 보다 속도 가 빠 르 고 사용 하 는 시스템 과 트 랜 잭 션 로그 자원 이 적 습 니 다.DELETE 문 구 는 한 줄 씩 삭제 하고 트 랜 잭 션 로그 에서 삭 제 된 줄 마다 한 줄 씩 기록 합 니 다.TRUNCATETABLE 는 메모리 테이블 데이터 에 사용 되 는 데이터 페이지 를 방출 하여 데 이 터 를 삭제 하고 트 랜 잭 션 로그 에 만 페이지 의 방출 을 기록 합 니 다.
(11)TRUNCATETABLE 는 표 의 모든 줄 을 삭제 하지만 표 구조 와 그 열,제약,색인 등 은 변 하지 않 습 니 다.새 줄 표지 에 사 용 된 계수 값 을 이 열의 피 드 로 초기 화 합 니 다.표지 계수 값 을 유지 하려 면 DELETE 로 바 꾸 십시오.표 정의 와 데 이 터 를 삭제 하려 면 DROPTABLE 문 구 를 사용 하 십시오.
(12)FOREIGNKEY 가 인용 을 제약 하 는 표 에 대해 서 는 TRUNCATETABLE 를 사용 할 수 없 으 며,WHERE 자구 가 없 는 DELETE 문 구 를 사용 해 야 한다.TRUNCATETABLE 는 로그 에 기록 되 어 있 지 않 기 때문에 트리거 를 활성화 할 수 없습니다.
삭제 하 다
1.delete 는 DML 입 니 다.delete 작업 을 수행 할 때 표 에서 한 줄 을 삭제 하고 이 줄 의 삭제 작업 을 redo 와 undo 표 공간 에 기록 하여 스크롤 백(rollback)과 재 작업 을 할 수 있 습 니 다.그러나 표 공간 이 충분 해 야 합 니 다.수 동 으로 제출(commt)해 야 유효 합 니 다.rollback 을 통 해 작업 을 취소 할 수 있 습 니 다.
2.delete 는 조건 에 따라 표 에서 조건 을 만족 시 키 는 데 이 터 를 삭제 할 수 있 습 니 다.where 자 구 를 지정 하지 않 으 면 표 의 모든 기록 을 삭제 합 니 다.
3.delete 문 구 는 표 가 사용 하 는 extent 에 영향 을 주지 않 고 높 은 수선(highwatermark)은 원래 의 위치 가 변 하지 않 습 니 다.
2.truncate
1.truncate 는 DDL 로 암시 적 으로 제출 되 기 때문에 스크롤 백 할 수 없고 트리거 가 작 동 하지 않 습 니 다.
2.truncate 는 표 의 모든 기록 을 삭제 하고 높 은 수선 과 모든 색인 을 다시 설정 합 니 다.부족 한 경우 minextents 개의 extent 에 공간 을 방출 합 니 다.reusestorage 를 사용 하지 않 는 한.로 그 를 기록 하지 않 기 때문에 실행 속도 가 빠 르 지만 롤 백 을 통 해 작업 을 취소 할 수 없습니다.
3.외부 키(foreignkey)에 대한 참조 표 는 truncatetable 을 사용 할 수 없고 where 자구 가 없 는 delete 문 구 를 사용 해 야 합 니 다.
4.truncatetable 은 색인 보기에 참여 한 표 에 사용 할 수 없습니다.
드 롭
1.drop 은 DDL 로 암시 적 으로 제출 되 기 때문에 스크롤 백 을 할 수 없고 트리거 를 촉발 하지 않 습 니 다.
2.drop 문 구 는 표 구조 와 모든 데 이 터 를 삭제 하고 표 가 사용 하 는 공간 을 모두 방출 합 니 다.
3.drop 문 구 는 표 의 구조 가 의존 하 는 제약,트리거,색인 을 삭제 하고 이 표 의 저장 과정/함수 에 의존 하여 보존 하지만 invalid 상태 로 변 합 니 다.
요약:
1.속도 상,일반적으로 drop>truncate>delete.
2.drop 과 truncate 를 사용 할 때 반드시 주의해 야 합 니 다.회복 할 수 있 지만 번 거 로 움 을 줄 이기 위해 서 는 신중 해 야 합 니 다.
3.일부 데 이 터 를 삭제 하려 면 delete 를 사용 하고 where 자 구 를 가 져 가 야 합 니 다.스크롤 백 구간 이 충분히 커 야 합 니 다.
시 계 를 삭제 하려 면 drop 을 사용 하 십시오.
시 계 를 보존 하고 모든 데 이 터 를 삭제 하려 면 사무 와 무관 하 다 면 truncate 를 사용 하면 됩 니 다.
트 랜 잭 션 과 관련 이 있 거나 trigger 를 실행 하려 면 delete 를 사용 하 십시오.
표 내부 의 조각 을 정리 하 는 경우 truncate 로 reusestroage 를 따라 가서 데 이 터 를 다시 가 져 오 거나 삽입 할 수 있 습 니 다.
총결산
drop,truncate,delete 의 차이 점 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.drop truncate 와 delete 의 차이 점 에 관 한 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기