복붙노트

[SQL] 무엇 TRUNCATE의 차이점은 그리고 SQL에서 DELETE

SQL

무엇 TRUNCATE의 차이점은 그리고 SQL에서 DELETE

TRUNCATE 및 SQL에서 DELETE의 차이점은 무엇입니까?

당신의 대답은 플랫폼 특정 경우 해당를 표시하시기 바랍니다.

해결법

  1. ==============================

    1.다음은 차이의 목록입니다. 나는 오라클 고유의 기능을 강조했으며, 희망 지역 사회는 또한 다른 공급 업체의 특정 차이에 추가 할 수 있습니다. 차이는 아래에 강조와 함께 대부분의 벤더에 공통적 인 차이는 직접 제목 아래에 갈 수 있습니다.

    다음은 차이의 목록입니다. 나는 오라클 고유의 기능을 강조했으며, 희망 지역 사회는 또한 다른 공급 업체의 특정 차이에 추가 할 수 있습니다. 차이는 아래에 강조와 함께 대부분의 벤더에 공통적 인 차이는 직접 제목 아래에 갈 수 있습니다.

    빠르게 테이블에서 모든 행을 삭제하려면, 당신은 정말 당신이 그것을하고 싶은 것,하고 테이블에 대한 외래 키가없는 경우, 다음 TRUNCATE 아마 DELETE보다 더 빠르게 될 것입니다 .

    다양한 시스템 관련 문제는 아래에 설명 된대로 고려되어야한다.

    삭제 DML은 자르기가 DDL (DDL 및 DML 무엇입니까?)입니다

    공급 업체에 의해 변수

    SQL * 서버

    자르기는 롤백 할 수 있습니다.

    PostgreSQL의

    자르기는 롤백 할 수 있습니다.

    신탁

    TRUNCATE는 DDL 때문에 두 개의 커밋 전에 하나는 문 실행 후 하나를 포함한다. 자르기 그러므로 롤백 할 수 없습니다, 그리고 자르는 과정에서 실패는 어쨌든 커밋 발행 할 것이다.

    그러나 아래의 플래시백을 참조하십시오.

    공간을 복구하지 않습니다 삭제, 자르기 공간을 복구

    신탁

    그런 다음 REUSE STORAGE 절을 사용하는 경우 데이터 세그먼트는 테이블에 데이터를 다시로드하는 경우 소폭 더 효율적으로 될 수있는, 할당 해제되지 않습니다. 하이 워터 마크가 재설정됩니다.

    삭제는 모든 행 또는 행의 하위 집합 만 제거 할 수 있습니다. 자르기는 모든 행을 제거합니다.

    신탁

    테이블이 분할 될 때, 각각의 파티션은 따라서 모든 테이블의 데이터의 부분적인 제거가 가능하며, 단독으로 잘릴 수있다.

    삭제는 클러스터 내부 테이블과 테이블에 적용 할 수 있습니다. 자르기는 테이블 또는 전체 클러스터에 적용됩니다. (오라클 특정 할 수 있음)

    신탁

    그것의 창조 새 데이터 개체 ID의 원인이됩니다 다시는 절단에 할당 할 압연하여도 하나의 삽입 이후 테이블에 대한 삽입이되지 않았어요하지 않는 데이터 개체 ID 만 잘라 내기 할당하는 새로운 데이터 개체 ID에 영향을주지 않습니다 삭제 .

    플래시백은 삭제에서 작동하지만, 잘라 내기 방지는 작업 이전 상태로 플래시백.

    그러나 11gR2에서 FLASHBACK ARCHIVE 기능 Express Edition을 제외하고,이를 허용

    오라클 FLASHBACK의 사용 http://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_flashback.htm#ADFNS638

    변하기 쉬운

    신탁

    삭제는 다른 사용자 또는 역할에 테이블에 부여 할 수 있지만, 잘라 내기은 DROP ANY TABLE 보조금을 사용하지 않고 할 수 없습니다.

    삭제는 리두 소량 및 취소의 많은 양의를 생성합니다. 자르기 각각의 미미한 양을 생성한다.

    신탁

    트렁 케이트 작업은 사용할 수 없게 인덱스를 다시 사용할 렌더링합니다. 삭제하지 않습니다.

    이 외래 키 참조를 테이블을 사용할 때 잘라 내기 적용 할 수 없습니다. 삭제와 치료는 외래 키의 구성에 따라 달라집니다.

    신탁

    자르기가 독점 테이블 잠금이 필요합니다, 삭제는 공유 테이블 잠금이 필요합니다. 따라서 테이블 잠금을 해제하는 것은 테이블에 잘라 내기 작업을 방지하는 방법입니다.

    DML 트리거는 잘라 내기에서 실행되지 않습니다.

    신탁

    DDL 트리거를 사용할 수 있습니다.

    신탁

    자르기는 데이터베이스 링크를 통해 발행 할 수 없습니다.

    SQL * 서버

    자르기는 IDENTITY 열 유형에 대한 순서를 재설정, 삭제는하지 않습니다.

    대부분의 구현으로, DELETE 문은 클라이언트에 삭제 된 행을 반환 할 수 있습니다.

    예를 들면 당신이 할 수 오라클 PL / SQL 서브 프로그램에서 :

    DELETE FROM employees_temp
    WHERE       employee_id = 299 
    RETURNING   first_name,
                last_name
    INTO        emp_first_name,
                emp_last_name;
    
  2. ==============================

    2.잘라 내기 및 삭제의 차이는 아래와 같습니다 :

    잘라 내기 및 삭제의 차이는 아래와 같습니다 :

    +----------------------------------------+----------------------------------------------+
    |                Truncate                |                    Delete                    |
    +----------------------------------------+----------------------------------------------+
    | We can't Rollback after performing     | We can Rollback after delete.                |
    | Truncate.                              |                                              |
    |                                        |                                              |
    | Example:                               | Example:                                     |
    | BEGIN TRAN                             | BEGIN TRAN                                   |
    | TRUNCATE TABLE tranTest                | DELETE FROM tranTest                         |
    | SELECT * FROM tranTest                 | SELECT * FROM tranTest                       |
    | ROLLBACK                               | ROLLBACK                                     |
    | SELECT * FROM tranTest                 | SELECT * FROM tranTest                       |
    +----------------------------------------+----------------------------------------------+
    | Truncate reset identity of table.      | Delete does not reset identity of table.     |
    +----------------------------------------+----------------------------------------------+
    | It locks the entire table.             | It locks the table row.                      |
    +----------------------------------------+----------------------------------------------+
    | Its DDL(Data Definition Language)      | Its DML(Data Manipulation Language)          |
    | command.                               | command.                                     |
    +----------------------------------------+----------------------------------------------+
    | We can't use WHERE clause with it.     | We can use WHERE to filter data to delete.   |
    +----------------------------------------+----------------------------------------------+
    | Trigger is not fired while truncate.   | Trigger is fired.                            |
    +----------------------------------------+----------------------------------------------+
    | Syntax :                               | Syntax :                                     |
    | 1) TRUNCATE TABLE table_name           | 1) DELETE FROM table_name                    |
    |                                        | 2) DELETE FROM table_name WHERE              |
    |                                        |    example_column_id IN (1,2,3)              |
    +----------------------------------------+----------------------------------------------+
    
  3. ==============================

    3.올린 사람 : http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands

    올린 사람 : http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands

  4. ==============================

    4.모든 좋은 답변, 어떤에 내가 추가해야합니다 :

    모든 좋은 답변, 어떤에 내가 추가해야합니다 :

    TRUNCATE TABLE은 DDL (데이터 정의 언어) 때문에이 아닌 DML (데이터 조작 언어) 명령을 삭제 트리거가 실행되지 않습니다.

  5. ==============================

    5.SQL 서버에서 삭제 대 자르기 요약 http://codaffection.com/sql-server-article/delete-vs-truncate-in-sql-server/ : 전체 기사에 대한 링크를 따라

    SQL 서버에서 삭제 대 자르기 요약 http://codaffection.com/sql-server-article/delete-vs-truncate-in-sql-server/ : 전체 기사에 대한 링크를 따라

    DOTNET 마피아 기사에서 발췌 : 삭제 대 자르기 SQL 서버에

  6. ==============================

    6.자동 증가와 PK가있는 경우 SQL Server 또는 MySQL과, 잘라 내기 카운터를 재설정합니다.

    자동 증가와 PK가있는 경우 SQL Server 또는 MySQL과, 잘라 내기 카운터를 재설정합니다.

  7. ==============================

    7."자르기 아무것도 기록하지 않습니다"맞습니다. 나는 더 가고 싶어요 :

    "자르기 아무것도 기록하지 않습니다"맞습니다. 나는 더 가고 싶어요 :

    자르기는 트랜잭션의 컨텍스트에서 실행되지 않습니다.

    이상 삭제 잘라야의 속도의 장점은 명백해야한다. 그 장점은 상황에 따라 사소한에서 엄청난 범위.

    그러나, 나는 잘라 내기 실수로 참조 무결성을 깰 볼 및 기타 제약 조건을 위반했습니다. 당신이 트랜잭션 외부에서 데이터를 수정하여 얻을 수 있다는 힘은 당신이 그물없이 줄타기를 걸을 때 당신이 상속 책임에 대해 균형을 이루어야한다.

  8. ==============================

    8.DELETE가 DML 문 반면 TRUNCATE는 DDL 문이다. 다음은 둘 사이의 차이점은 다음과 같습니다

    DELETE가 DML 문 반면 TRUNCATE는 DDL 문이다. 다음은 둘 사이의 차이점은 다음과 같습니다

    여기에 주제에 관련된 아주 좋은 링크입니다.

  9. ==============================

    9.예, DELETE은 TRUNCATE는 빠르다, 느리다. 왜?

    예, DELETE은 TRUNCATE는 빠르다, 느리다. 왜?

    DELETE, 기록, 점검 제한 조건을 읽을 블록, 업데이트 인덱스를 업데이트하고, 리두 / 언두를 생성해야합니다. 그 모든 시간이 걸립니다.

    TRUNCATE 단순히 테이블 (하이 워터 마크)와 호모에 대한 데이터베이스에서 포인터를 조정! 데이터가 사라입니다.

    이것은, AFAIK 오라클 고유의 것입니다.

  10. ==============================

    10.실수하면 당신은 삭제 / 자르기를 사용하여 테이블에서 모든 데이터를 제거했습니다. 당신은 커밋 된 트랜잭션을 롤백 할 수 있습니다. 삭제가 / 자르기가 발생하는 것입니다 시간까지 마지막 백업 실행 트랜잭션 로그를 복원합니다.

    실수하면 당신은 삭제 / 자르기를 사용하여 테이블에서 모든 데이터를 제거했습니다. 당신은 커밋 된 트랜잭션을 롤백 할 수 있습니다. 삭제가 / 자르기가 발생하는 것입니다 시간까지 마지막 백업 실행 트랜잭션 로그를 복원합니다.

    아래의 관련 정보는 블로그 게시물에서이다 :

  11. ==============================

    11.SQL Server 2005에서는 난 당신이 잘라 내기를 롤백 할 수 있다고 생각합니다

    SQL Server 2005에서는 난 당신이 잘라 내기를 롤백 할 수 있다고 생각합니다

  12. ==============================

    12.올린 사람 : http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands

    올린 사람 : http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands

  13. ==============================

    13.트랜잭션에 싸여 경우 TRUNCATE 롤백 할 수 있습니다.

    트랜잭션에 싸여 경우 TRUNCATE 롤백 할 수 있습니다.

    아래 두 개의 참조를보고 자신을 테스트하십시오 -

    http://blog.sqlauthority.com/2007/12/26/sql-server-truncate-cant-be-rolled-back-using-log-files-after-transaction-session-is-closed/

    http://sqlblog.com/blogs/kalen_delaney/archive/2010/10/12/tsql-tuesday-11-rolling-back-truncate-table.aspx

    삭제 TRUNCATE의 비교는 SQL 인터뷰 동안 악명 높은 질문 중 하나입니다. 그냥 당신이 면접관에게 제대로 설명하거나 당신에게 작업 비용이 있습니다. 문제는 많은되지는 YES 자르기가 롤백 될 수 있음을 그들에게 그래서 만약 대부분 그들이 잘못과 대답을 고려할 것 알고 있다는 것입니다.

  14. ==============================

    14.TRUNCATE

    TRUNCATE

    TRUNCATE SQL 쿼리는 개별 행 삭제를 로그인하지 않고, 테이블에서 모든 행을 제거합니다.

    지우다

    DELETE와 큐를 실행하려면, 삭제 권한은 목표 테이블에 필요합니다. 당신이 DELETE의 WHERE 절을 사용해야 할 경우, 권한이 아니라 필수 선택합니다.

  15. ==============================

    15.원래의 대답에 작은 보정 - 삭제도 (취소는 자체가 재실행에 의해 보호) 리두 상당한 양의를 생성합니다. 이것은 자동 추적 출력에서 ​​볼 수있다 :

    원래의 대답에 작은 보정 - 삭제도 (취소는 자체가 재실행에 의해 보호) 리두 상당한 양의를 생성합니다. 이것은 자동 추적 출력에서 ​​볼 수있다 :

    SQL> delete from t1;
    
    10918 rows deleted.
    
    Elapsed: 00:00:00.58
    
    Execution Plan
    ----------------------------------------------------------
       0      DELETE STATEMENT Optimizer=FIRST_ROWS (Cost=43 Card=1)
       1    0   DELETE OF 'T1'
       2    1     TABLE ACCESS (FULL) OF 'T1' (TABLE) (Cost=43 Card=1)
    
    
    
    
    Statistics
    ----------------------------------------------------------
             30  recursive calls
          12118  db block gets
            213  consistent gets
            142  physical reads
        3975328  redo size
            441  bytes sent via SQL*Net to client
            537  bytes received via SQL*Net from client
              4  SQL*Net roundtrips to/from client
              2  sorts (memory)
              0  sorts (disk)
          10918  rows processed
    
  16. ==============================

    16.다음은 SQL Server의 DELETE와 TRUNCATE의 차이점에 내 자세한 대답은

    다음은 SQL Server의 DELETE와 TRUNCATE의 차이점에 내 자세한 대답은

    데이터를 제거 • : 우선 먼저, 모두 테이블에서 행을 제거하는 데 사용할 수 있습니다. 그러나 DELETE 테이블에서뿐만 아니라 VIEW 또는 공급자의 능력에 OPENROWSET 또는 OPENQUERY 피사체의 결과에서뿐만 아니라 행을 제거하는 데 사용할 수 있습니다.

    • FROM 절 :와 당신도 한 테이블 / 뷰에서 삭제 행 / 절에서 다른를 사용하여 다른 테이블에서 행을 기반으로 rowset_function_limited 수 있습니다 삭제합니다. 그에서 FROM 절 당신은 또한 쓸 수 있습니다 정상적인 조건 가입하세요. 사실 당신은 DELETE 및 제거 열 이름과 SELECT를 대체하여 모든 집계 함수를 포함하지 않는 SELECT 문에서 DELETE 문을 만들 수 있습니다. TRUNCATE하면 그렇게 할 수 없습니다.

    • 장소 : 트렁 케이트는 WHERE이 조건 있지만 삭제할 수 없습니다. TRUNCATE와 그 말은 특정 행이나 행의 특정 그룹을 삭제할 수 없습니다. TRUNCATE TABLE없이 절을 DELETE 문 비슷합니다.

    • 성능 : TRUNCATE 표는 더 빠르고 사용 적은 시스템 및 트랜잭션 로그 리소스를 제공합니다. 그리고 그 이유 중 하나는 두 문장에서 사용하는 잠금이다. 행 잠금을 사용하여 실행되는 DELETE 문은 테이블의 각 행은 삭제 잠겨 있습니다. TRUNCATE TABLE은 항상 테이블과 페이지가 아니라 각 행을 잠급니다.

    • 트랜잭션 로그 : DELETE 문은 행을 한 번에 하나씩 제거하고 각 행에 대해 트랜잭션 로그의 개별 항목을 작성합니다. TRUNCATE TABLE은 트랜잭션 로그에 테이블 데이터 및 기록 만 페이지 할당 취소를 저장하는 데 사용되는 데이터 페이지를 할당 해제하여 데이터를 제거합니다.

    • 페이지는 : DELETE 문이 실행 된 후, 테이블은 빈 페이지를 여전히를 포함 할 수 있습니다. TRUNCATE는 테이블 데이터를 저장하는 데 사용되는 데이터 페이지를 할당 해제하여 데이터를 제거합니다.

    • 트리거 : TRUNCATE는 테이블에 삭제 트리거를 활성화하지 않습니다. 그래서 당신은 TRUNCATE를 사용하는 동안 매우주의해야합니다. 삭제 트리거가 행이 삭제 될 때 일부 자동 정리 또는 로깅 작업을 할 테이블에 정의 된 경우 하나는 TRUNCATE를 사용해서는 안됩니다.

    • 신원 칼럼 : 테이블에 ID 열이 포함되어있는 경우 TRUNCATE로, 해당 열의 카운터는 열에 대한 정의 시드 값으로 재설정됩니다. 어떤 씨앗이 정의되지 않은 경우, 디폴트 값 1이 사용됩니다. DELETE 신원 카운터를 재설정하지 않습니다. 당신이 신원 카운터를 유지하려면 그래서, 대신에 DELETE 사용합니다.

    • 복제 : DELETE는 트랜잭션 복제 또는 병합 복제에 사용되는 테이블에 대해 사용할 수 있습니다. TRUNCATE는 트랜잭션 복제 또는 병합 복제에 관련된 테이블에 대해 사용할 수 없습니다 수 있지만.

    • 롤백 : DELETE 문을 롤백 할 수 있습니다. TRUNCATE 또한 롤백은 트랜잭션 블록 표로 세션이 종료되지 않고 제공 될 수있다. 세션이 종료되면 당신은 롤백 TRUNCATE 할 수 없습니다.

    • 제한 사항 :이 트리거를 위반하거나 FOREIGN KEY 제약 조건과 다른 테이블에있는 데이터를 참조하는 행을 제거하려고하면 DELETE 문이 실패 할 수 있습니다. 삭제 제거합니다 여러 행, 삭제 된 행 중 하나가 트리거 또는 제약 조건을 위반는, 문이 취소 된 경우, 오류가 리턴되며 행은 제거되지 않습니다. 그리고 삭제하면보기가 갱신 가능한 뷰 여야,보기에 사용됩니다. TRUNCATE는 인덱싱 된 뷰에서 사용하는 테이블에 대해 사용할 수 없습니다. TRUNCATE는 외래 키 자신을 참조있는 테이블하지 않는 한 FOREIGN KEY 제약 조건이 참조하는 테이블에 대해 사용할 수 없습니다.

  17. ==============================

    17.가장 큰 차이점은 삭제되는 동안 잘라 내기가 아닌 기록 된 작업이 때문이다.

    가장 큰 차이점은 삭제되는 동안 잘라 내기가 아닌 기록 된 작업이 때문이다.

    단순히 데이터베이스 충돌의 경우에, 당신은 잘라야에 의해시에서 운영하는 데이터를 복구 할 수 있지만 함께하면 할 수 삭제할 것을 의미한다.

    더 자세한 사항은 여기에

  18. ==============================

    18.DELETE 문 :이 명령은 where 절에 주어진 조건에 따라 테이블에서만 행을 삭제하거나 더 조건이 지정되지 않은 경우 테이블에서 모든 행을 삭제합니다. 그러나 테이블을 포함하는 공간을 확보하지 않습니다.

    DELETE 문 :이 명령은 where 절에 주어진 조건에 따라 테이블에서만 행을 삭제하거나 더 조건이 지정되지 않은 경우 테이블에서 모든 행을 삭제합니다. 그러나 테이블을 포함하는 공간을 확보하지 않습니다.

    는 SQL DELETE 문장의 구문은 다음과 같습니다

    TABLE_NAME에서 삭제 [WHERE 조건];

    TRUNCATE 문 :이 명령은 테이블을 포함하는 공간 테이블에서 모든 행을 삭제하고 해제하는 데 사용됩니다.

  19. ==============================

    19.지우다

    지우다

    TRUNCATE

    자세한 내용을 보려면 다음 사이트를 방문하십시오

    http://www.zilckh.com/what-is-the-difference-between-truncate-and-delete/

  20. ==============================

    20.두 동작의 상기 한 차이는 테이블 ID 열을 포함하는 경우, 그 열에 대한 카운터 TRUNCATE 아래 1 (또는 컬럼에 대해 정의 된 상기 시드 값으로) 리셋되고 있다는 것이다. DELETE이 영향이 없습니다.

    두 동작의 상기 한 차이는 테이블 ID 열을 포함하는 경우, 그 열에 대한 카운터 TRUNCATE 아래 1 (또는 컬럼에 대해 정의 된 상기 시드 값으로) 리셋되고 있다는 것이다. DELETE이 영향이 없습니다.

  21. ==============================

    21.즉, 잘라 내기가 (등 롤백되며, 큰 거래의 일부가 될 수 있습니다) 삭제 반면에 기록됩니다 (너무 빠른하지만 취소 될 수 없음) 아무것도 기록하지 않습니다. 당신이 dev에있는 테이블에 당신이 원하지 않는 데이터가있는 경우 당신이 트랜잭션 로그를 채우는의 위험을 실행하지 않는 한 일반적으로 더 잘라야하는 것입니다

    즉, 잘라 내기가 (등 롤백되며, 큰 거래의 일부가 될 수 있습니다) 삭제 반면에 기록됩니다 (너무 빠른하지만 취소 될 수 없음) 아무것도 기록하지 않습니다. 당신이 dev에있는 테이블에 당신이 원하지 않는 데이터가있는 경우 당신이 트랜잭션 로그를 채우는의 위험을 실행하지 않는 한 일반적으로 더 잘라야하는 것입니다

  22. ==============================

    22.당신이 수백만 행 테이블의 데이터를 새로 고칠 필요하지만, 그것을 다시하지 않을 때, 편리 큰 이유입니다. 자르기의 perfomance에 미치는 영향은 무시할 수있는 반면 "삭제 *"영원히 걸릴 것이다.

    당신이 수백만 행 테이블의 데이터를 새로 고칠 필요하지만, 그것을 다시하지 않을 때, 편리 큰 이유입니다. 자르기의 perfomance에 미치는 영향은 무시할 수있는 반면 "삭제 *"영원히 걸릴 것이다.

  23. ==============================

    23.DBLINK를 통해 DDL을 수행 할 수 없습니다.

    DBLINK를 통해 DDL을 수행 할 수 없습니다.

  24. ==============================

    24.나는 마티유의 게시물에 대해 언급 싶지만, 아직 담당자가 없습니다 ...

    나는 마티유의 게시물에 대해 언급 싶지만, 아직 담당자가 없습니다 ...

    MySQL의에서 자동 증가 카운터는하지만 삭제와, 잘라 내기로 다시 가져옵니다.

  25. ==============================

    25.그것은 잘라 내기가 SQL 서버에 아무것도 기록하지 않습니다하지 않습니다. 잘라 내기 어떤 정보를 기록하지 않습니다하지만 당신은 TRUNCATE 해고 된 테이블의 데이터 페이지의 할당 해제를 기록합니다.

    그것은 잘라 내기가 SQL 서버에 아무것도 기록하지 않습니다하지 않습니다. 잘라 내기 어떤 정보를 기록하지 않습니다하지만 당신은 TRUNCATE 해고 된 테이블의 데이터 페이지의 할당 해제를 기록합니다.

    우리가 처음에 거래를 정의하고 우리가 롤백 그 후립니다 기록을 복구 할 수 있습니다 경우립니다 기록은 롤백 할 수 있습니다. 그러나 최선을 다하고 절단 작업 후에 트랜잭션 로그 백업에서 레코드를 절단 복구 할 수 없습니다.

  26. ==============================

    26.자르기도 여기에 예를 롤백 할 수 있습니다

    자르기도 여기에 예를 롤백 할 수 있습니다

    begin Tran
    delete from  Employee
    
    select * from Employee
    Rollback
    select * from Employee
    
  27. ==============================

    27.자르기 및 SQL에서 삭제를 제거하거나 테이블에서 데이터 삭제하는 데 사용되는 두 개의 명령입니다. 당신이 그것을 사용하기 전에 세부 사항에 익숙해 질 때까지 문제를 많이 만들 수 있습니다 자연을 모두 SQL 명령에서 아주 기본적인 비록. 이 발생할 수 있습니다 명령의 잘못된 선택은 하나 매우 느린 과정거나 너무 많은 데이터 요구를 제거 할 및 로그 세그먼트가 충분하지 않은 경우에도, 로그 세그먼트를 폭파 할 수 있습니다. 이 중요한 이유의는 SQL에서 잘라 내기 및 삭제 명령을 사용하지만이를 사용하기 전에 자르기 사이의 차이점을 인식하고 삭제하고이를 기반으로, 우리는 DELETE 제거를위한 더 나은 옵션 때 찾을 수 있어야한다시기를 알 것을 데이터 또는 TRUNCATE 퍼지 테이블에 사용되어야한다.

    자르기 및 SQL에서 삭제를 제거하거나 테이블에서 데이터 삭제하는 데 사용되는 두 개의 명령입니다. 당신이 그것을 사용하기 전에 세부 사항에 익숙해 질 때까지 문제를 많이 만들 수 있습니다 자연을 모두 SQL 명령에서 아주 기본적인 비록. 이 발생할 수 있습니다 명령의 잘못된 선택은 하나 매우 느린 과정거나 너무 많은 데이터 요구를 제거 할 및 로그 세그먼트가 충분하지 않은 경우에도, 로그 세그먼트를 폭파 할 수 있습니다. 이 중요한 이유의는 SQL에서 잘라 내기 및 삭제 명령을 사용하지만이를 사용하기 전에 자르기 사이의 차이점을 인식하고 삭제하고이를 기반으로, 우리는 DELETE 제거를위한 더 나은 옵션 때 찾을 수 있어야한다시기를 알 것을 데이터 또는 TRUNCATE 퍼지 테이블에 사용되어야한다.

    여기에 체크를 클릭하십시오

  28. ==============================

    28.테이블 잘라 내기 문을 발행하여, 당신은 어떤 기록이나 거래 처리 일어나는없이, 테이블 내 모든 레코드를 삭제하는 SQL 서버를 지시한다.

    테이블 잘라 내기 문을 발행하여, 당신은 어떤 기록이나 거래 처리 일어나는없이, 테이블 내 모든 레코드를 삭제하는 SQL 서버를 지시한다.

  29. ==============================

    29.TRUNCATE 문은 어떤을 필요로 전체 테이블을 쳐하지 않는 반면, DELETE 문은 삭제 특정 기록에 WHERE 절을 할 수 있습니다. 자르는 문은하지 않는 반면, 중요한 것은, DELETE 문이 삭제 된 날짜를 기록합니다.

    TRUNCATE 문은 어떤을 필요로 전체 테이블을 쳐하지 않는 반면, DELETE 문은 삭제 특정 기록에 WHERE 절을 할 수 있습니다. 자르는 문은하지 않는 반면, 중요한 것은, DELETE 문이 삭제 된 날짜를 기록합니다.

  30. ==============================

    30.마이크로 소프트 SQL 서버에 하나 이상의 차이 특정는 기록이 예컨대, 삭제 된 것을 추적 출력 문을 사용할 수 있습니다 삭제 함께 :

    마이크로 소프트 SQL 서버에 하나 이상의 차이 특정는 기록이 예컨대, 삭제 된 것을 추적 출력 문을 사용할 수 있습니다 삭제 함께 :

    delete from [SomeTable]
    output deleted.Id, deleted.Name
    

    당신은 잘라야으로이 작업을 수행 할 수 없습니다.

  31. from https://stackoverflow.com/questions/139630/whats-the-difference-between-truncate-and-delete-in-sql by cc-by-sa and MIT license