> 데이터 베이스 > MySQL 튜토리얼 > SQL Server 2008에서 대량 삭제를 효율적으로 수행하는 방법은 무엇입니까?

SQL Server 2008에서 대량 삭제를 효율적으로 수행하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-02 15:12:42
원래의
163명이 탐색했습니다.

How to Efficiently Perform Bulk Deletion in SQL Server 2008?

SQL Server 2008의 대량 삭제: 탐구

대량 삭제의 개념은 SQL Server 2008에서 대량의 행을 삭제하려고 할 때 발생합니다. 테이블을 효율적으로 SQL Server의 TRUNCATE 명령은 테이블에서 모든 행을 제거하는 빠른 방법을 제공하지만 WHERE 절을 사용하여 데이터를 선택적으로 삭제할 수는 없습니다.

대량 복사를 삭제에 적용할 수 있습니까?

안타깝게도 SQL Server 2008에는 삭제를 위한 대량 복사(bcp)와 직접적으로 동등한 기능이 없습니다. 그러나 대체 접근 방식을 활용하여 대량 삭제를 수행할 수 있습니다.

일괄 삭제

일괄 삭제에는 삭제 작업을 더 작은 배치로 분할하는 작업이 포함됩니다. 이는 다음 구문을 사용하여 달성할 수 있습니다.

SELECT 'Starting' --sets @@ROWCOUNT
WHILE @@ROWCOUNT <> 0
    DELETE TOP (xxx) MyTable WHERE ...
로그인 후 복사

'Starting' 문은 각 일괄 처리에서 삭제할 행 수를 결정하는 @@ROWCOUNT 변수를 설정합니다. WHILE 루프는 모든 행이 삭제될 때까지 계속됩니다.

홀딩 테이블 사용

상당한 비율의 행을 제거해야 하는 경우 홀딩 테이블을 사용할 수 있습니다. 다음 단계에서는 이 접근 방식을 간략하게 설명합니다.

  1. 필요한 열이 포함된 보관 테이블을 만듭니다.
  2. 삭제할 행을 제외하고 보관 테이블에 보관할 행을 선택합니다.
  3. 원래 테이블을 잘라 모든 행을 제거합니다.
  4. 보존 테이블의 행을 원본 테이블에 삽입합니다.

결론

SQL Server 2008에서는 삭제를 위한 대량 복사를 직접 대체할 수는 없지만 위에서 설명한 기술은 실행 가능한 대안을 제공합니다. 일괄 삭제는 적은 수의 행을 선택적으로 삭제하는 데 적합하고, 보유 테이블 접근 방식은 대규모 삭제에 적합합니다.

위 내용은 SQL Server 2008에서 대량 삭제를 효율적으로 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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