> 데이터 베이스 > MySQL 튜토리얼 > SQL Server 2008은 bcp와 유사한 대량 삭제 기능을 제공합니까?

SQL Server 2008은 bcp와 유사한 대량 삭제 기능을 제공합니까?

Mary-Kate Olsen
풀어 주다: 2025-01-02 21:28:40
원래의
592명이 탐색했습니다.

Does SQL Server 2008 Offer a Bulk Delete Feature Similar to bcp?

SQL Server 2008의 대량 삭제

SQL Server 테이블에서 대량 작업을 수행하는 동안 널리 사용되는 것과 유사한 대량 삭제 작업을 수행하는 방법이 있는지 궁금해하는 경우가 많습니다. 삽입 작업에 사용되는 효율적인 대량 복사(bcp) 도구입니다. 이 질문은 SQL Server에 전용 대량 삭제 기능이 없기 때문에 발생합니다.

안타깝게도 대답은 부정적입니다. SQL Server는 대량 데이터 삭제를 위해 bcp와 같은 직접적인 메커니즘을 제공하지 않습니다. WHERE 절을 사용하여 삭제 작업의 영향을 받는 행을 제한하려는 경우 필터링 없이 테이블의 모든 행을 삭제하는 TRUNCATE 명령을 사용할 수 없습니다.

대체 접근 방법

대량 삭제 유틸리티가 없는 경우 사용할 수 있는 몇 가지 대체 접근 방식이 있습니다. take:

  1. 일괄 삭제:

    • DELETE TOP(xxx) 구문을 사용하여 삭제 작업을 더 작은 배치로 나눕니다. 이를 통해 각 배치에서 삭제되는 행 수를 제어할 수 있습니다.
    • 이 접근 방식은 전용 대량 삭제보다 느리지만 시스템 리소스를 소모하지 않고 대규모 삭제를 처리할 수 있습니다.
  2. 테이블 교체:

    • 만들기 보존할 행을 보관할 임시 테이블.
    • TRUNCATE 명령을 사용하여 원본 테이블에서 모든 행을 삭제합니다.
    • 보존된 행을 임시 테이블에서 원본 테이블에 다시 삽입합니다.
    • 이 방법은 많은 비율의 행을 삭제하는 데 효율적이지만 임시 삭제를 수용하려면 충분한 디스크 공간이 필요합니다. table.

예:

-- Batched Deletes
SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (1000) MyTable WHERE ...

-- Table Swap
SELECT col1, col2, ... INTO #Holdingtable
       FROM MyTable WHERE ..opposite condition..
TRUNCATE TABLE MyTable
INSERT MyTable (col1, col2, ...)
       SELECT col1, col2, ... FROM #Holdingtable
로그인 후 복사

이러한 대체 접근 방식이 항상 전용 벌크와 동일한 성능을 제공하는 것은 아니라는 점을 기억하세요. 삭제 기능. 그러나 WHERE 절을 사용해야 하는 경우 대규모 삭제 작업에 실행 가능한 옵션을 제공합니다.

위 내용은 SQL Server 2008은 bcp와 유사한 대량 삭제 기능을 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿