SQL 의 Truncate 사용법

3916 단어 sqltruncate사용법
본문 안내:표 의 데 이 터 를 삭제 하 는 방법 은 delete,truncate 가 있 습 니 다.그 중에서 TRUNCATE TABLE 은 표 의 모든 줄 을 삭제 하고 한 줄 의 삭제 작업 을 기록 하지 않 습 니 다.TRUncate TABLE 은 WHERE 자구 가 없 는 DELETE 문구 와 유사 합 니 다.그러나 TRUNCATE TABLE 은 속도 가 빠 르 고 사용 하 는 시스템 자원 과 트 랜 잭 션 로그 자원 이 적 습 니 다.다음은 SQL 의 Truncate 사용법 을 소개 합 니 다.
이 시계 가 더 이상 필요 하지 않 을 때 drop 을 사용 하 세 요.이 시 계 를 보존 하려 고 하지만 모든 기록 을 삭제 하려 면 truncate 를 사용 하 십시오.일부 기록 을 삭제 하려 면(always with a WHERE clause)delete 를 사용 하 십시오.
Truncate 는 자료 표 에 있 는 모든 자 료 를 빠르게 비 울 수 있 는 SQL 문법 입 니 다.또한 자동 부가 가치 가 있 는 필드 에 대해 0 으로 재 계산 하 는 역할 을 할 수 있다.
Truncate 문법

[ { database_name.[ schema_name ]. | schema_name . } ]
  table_name
[ ; ]
매개 변수
database_name
데이터베이스 이름.
schema_name
표 소속 구조의 이름.
table_name
차단 할 표 의 이름 이나 모든 줄 의 표 의 이름 을 삭제 합 니 다.
2.Truncate 사용 주의사항
1.TRUNCATE TABLE 은 기능 적 으로 WHERE 자구 가 없 는 DELETE 문구 와 같 습 니 다.둘 다 표 의 모든 줄 을 삭제 합 니 다.그러나 TRUNCATE TABLE 은 DELETE 보다 속도 가 빠 르 고 사용 하 는 시스템 과 트 랜 잭 션 로그 자원 이 적 습 니 다. 
2.DELETE 문 구 는 한 줄 씩 삭제 하고 트 랜 잭 션 로그 에서 삭 제 된 줄 마다 한 줄 씩 기록 합 니 다.TRUNCATE TABLE 은 메모리 테이블 데이터 에 사용 되 는 데이터 페이지 를 방출 하여 데 이 터 를 삭제 하고 트 랜 잭 션 로그 에 만 페이지 의 방출 을 기록 합 니 다.
3.TRUNCATE TABLE 은 표 의 모든 줄 을 삭제 하지만 표 구조 와 그 열,제약,색인 등 은 변 하지 않 습 니 다.새 줄 표지 에 사 용 된 계수 값 을 이 열의 피 드 로 초기 화 합 니 다.표지 계수 값 을 유지 하려 면 DELETE 로 바 꾸 십시오.표 정의 와 데 이 터 를 삭제 하려 면 DROP TABLE 문 구 를 사용 하 십시오. 
4.FOREIGN KEY 가 인용 을 제약 하 는 표 에 대해 서 는 TRUNCATE TABLE 을 사용 할 수 없고 WHERE 자구 가 없 는 DELETE 문 구 를 사용 해 야 합 니 다.TRUNCATE TABLE 이 로그 에 기록 되 어 있 지 않 기 때문에 트리거 를 활성화 할 수 없습니다.
5.TRUNCATE TABLE 은 색인 보기에 참여 한 표 에 사용 할 수 없습니다. 
6.TRUNCATE TABLE 로 데 이 터 를 삭제 하 는 표 에 데 이 터 를 추가 할 때 UPDATE STATISTICS 를 사용 하여 색인 정 보 를 유지 해 야 합 니 다.
7.ROLLBACK 문구 가 있 으 면 DELETE 작업 은 취소 되 지만 TRUNCATE 는 취소 되 지 않 습 니 다. 
3.아래 표 에 TRUNCATE TABLE 을 사용 할 수 없습니다.
1.FOREIGN KEY 에서 인용 을 제약 하 는 표 입 니 다.(자신 을 참조 하 는 외부 키 가 있 는 시 계 를 차단 할 수 있 습 니 다.)
2.색인 보기 에 참여 하 는 표 입 니 다.
3.트 랜 잭 션 을 통 해 발 표 된 표를 복사 하거나 통합 합 니 다.
4.상기 하나 이상 의 특징 을 가 진 표 에 대해 DELETE 문 구 를 사용 하 십시오.
5.TRUNCATE TABLE 은 트리거 를 활성화 할 수 없습니다.이 동작 은 각 줄 의 삭 제 를 기록 하지 않 기 때 문 입 니 다.
4.TRUNCATE,Drop,Delete 의 차이 점
1.drop 과 delete 는 표 의 데이터(정의)만 삭제 하고 drop 문 구 는 표 의 구조,의존 하 는 제약(constrain),트리거(trigger),색인(index)을 삭제 합 니 다.이 표 에 의존 하 는 저장 과정/함 수 는 유지 되 지만 invalid 상태 로 변 합 니 다.
2.delete 문 구 는 DML 언어 입 니 다.이 동작 은 rollback segement 에 놓 여 있 고 사물 을 제출 한 후에 야 유효 합 니 다.해당 트리거(trigger)가 있 으 면 실행 할 때 트리거 됩 니 다.truncate,drop 은 DDL 언어 로 조작 후 효력 이 발생 합 니 다.원래 데 이 터 는 rollback 에 넣 지 않 고 스크롤 백 할 수 없습니다.조작 은 trigger 를 촉발 하지 않 습 니 다.
3.delete 문 구 는 표 가 사용 하 는 extent,고수 선(high watermark)이 원래 의 위 치 를 유지 하 는 데 영향 을 주지 않 습 니 다.drop 문 구 는 표 가 사용 하 는 공간 을 모두 방출 합 니 다.truncate 문 구 를 절약 하지 않 은 상태 에서 minextents 의 extent 에 공간 을 방출 합 니 다.reuse storage 를 사용 하지 않 는 한.truncate 는 고수 선 을 복원 합 니 다.
4.효율 성:drop>truncate>delete
5.안전성:drop 과 truncate 를 조심 하 세 요.특히 백업 이 없 을 때 일부 데 이 터 를 삭제 하려 면 delete 를 사용 할 수 있 습 니 다.where 자 구 를 가 져 가 야 합 니 다.스크롤 백 을 삭제 하려 면 drop 을 사용 할 수 있 습 니 다.시 계 를 삭제 하려 면 drop 을 사용 할 수 있 습 니 다.표 의 모든 데 이 터 를 삭제 하려 면 delete 를 사용 할 수 있 습 니 다.사물 과 관련 이 있 거나 trigger 를 촉발 하려 면 delete 를 사용 하 십시오.표 내부 의 조각 을 정리 하 는 경우 truncate 로 reuse stroage 를 따라 가서 데 이 터 를 다시 가 져 오고 삽입 할 수 있 습 니 다.
6.delete 는 DML 구문 으로 자동 으로 제출 되 지 않 습 니 다.drop/truncate 는 모두 DDL 문장 으로 실행 되면 자동 으로 제출 됩 니 다.
7.drop 은 표,패턴,색인,보기,완전 성 제한 등 전체적인 데 이 터 를 삭제 하 는 데 사 용 됩 니 다.delete 는 표 의 한 원 그룹 과 같은 부분 적 인 데 이 터 를 삭제 하 는 데 사 용 됩 니 다.
8.DROP 는 표 구 조 를 모두 삭제 했다.DELETE 는 데 이 터 를 지 울 뿐 입 니 다.
9.이 시계 가 더 이상 필요 하지 않 을 때 drop 을 사용 합 니 다.이 시 계 를 보존 하려 고 하지만 모든 기록 을 삭제 하려 면 truncate 를 사용 하 십시오.일부 기록 을 삭제 하려 면(always with a WHERE clause)delete 를 사용 하 십시오.
총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 SQL 에서 Truncate 의 용법 입 니 다.여러분 께 도움 이 되 셨 으 면 합 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기