SQL Server 2008의 일괄 삭제 최적화
SQL Server에서 bcp(대량 복사)와 같은 대량 작업은 효율적인 데이터 조작 기술을 제공합니다. 그러나 유사한 대량 삭제 기능을 사용할 수 있는지에 대한 의문이 생깁니다.
질의:
SQL Server에 대량 삭제를 위한 솔루션이 있습니까?
TRUNCATE는 선택적 삭제에 사용할 수 없으므로 WHERE 절이 필요합니다. 데이터를 대량으로 삭제하는 데 bcp 대신 사용할 수 있는 방법이 있습니까?
답변:
아니요, SQL Server는 전문적인 대량 삭제 작업을 제공하지 않습니다. 그러나 일괄 삭제를 최적화하는 방법에는 여러 가지가 있습니다.
@@ROWCOUNT를 사용한 일괄 삭제:
SELECT 'Starting' --sets @@ROWCOUNT WHILE @@ROWCOUNT <> 0 DELETE TOP (xxx) MyTable WHERE ...
이 쿼리는 'xxx' 일괄적으로 DELETE 문을 실행합니다. 행이 더 이상 남지 않을 때까지 행.
잘라내고 삽입 방법:
SELECT col1, col2, ... INTO #Holdingtable FROM MyTable WHERE ..opposite condition.. TRUNCATE TABLE MyTable INSERT MyTable (col1, col2, ...) SELECT col1, col2, ... FROM #Holdingtable
이 기술은 높은 비율의 행을 삭제해야 할 때 효과적입니다. 보관할 행이 포함된 임시 테이블을 생성하고 원본 테이블을 잘라낸 후 보관된 행을 다시 테이블에 삽입합니다.
위 내용은 SQL Server 2008에서 일괄 삭제를 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!