다음을 통해 공유


조건부 삭제 추적으로 병합 복제 성능 최적화

[!참고]

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.

병합 복제를 사용하여 하나 이상의 아티클에 대한 삭제를 복제 트리거 및 시스템 테이블에서 추적할 수 없도록 지정할 수 있습니다. 아티클에 대해 이 옵션을 지정하면 게시자나 구독자에서 삭제가 추적되거나 복제되지 않습니다. 이 옵션은 다양한 응용 프로그램 시나리오를 지원하며 삭제를 복제할 필요가 없거나 삭제를 복제하는 것이 바람직하지 않은 상황에 대해 최적화된 성능을 제공합니다. 성능을 향상시키는 방법으로는 삭제에 대한 메타데이터를 저장하지 않는 방법, 동기화 중 삭제를 열거하지 않는 방법, 삭제가 구독자에 복제 및 적용되지 않게 하는 방법의 3가지가 있습니다.

[!참고]

다운로드 전용 아티클을 사용하려면 게시의 호환성 수준이 적어도 90RTM 이상이어야 합니다. 자세한 내용은 복제 토폴로지에 SQL Server의 여러 버전 사용 항목의 "병합 게시에 대한 호환성 수준" 섹션을 참조하십시오.

옵션은 게시 생성 시 지정할 수 있으며 응용 프로그램에서 일부 삭제 내용은 복제하고 나머지 삭제 내용은 복제하지 않아야 하는 경우(예: 일괄 삭제) 옵션을 설정 또는 해제할 수 있습니다. 다음 예에서는 응용 프로그램에서 이 옵션을 사용하는 방법을 설명합니다.

  • 이동이 잦은 영업 사원이 사용하는 응용 프로그램에는 일반적으로 SalesOrderHeader, SalesOrderDetailProduct와 같은 테이블이 있습니다. 구독자에서 입력한 주문은 게시자로 복제되고 게시자에서는 이 데이터를 주문 수행 시스템에 제공합니다. 이동이 잦은 영업 사원 중 많은 수가 저장소가 제한된 핸드헬드 장치를 사용하므로 게시자에서 주문을 받으면 해당 주문을 구독자에서 삭제할 수 있습니다. 해당 주문은 시스템 내에서 계속 활성 상태이므로 삭제가 게시자에 전파되지 않습니다.

    이 시나리오에서 SalesOrderHeaderSalesOrderDetail 테이블에 대해 삭제를 추적할 수 없습니다. 제품이 게시자에서 삭제되면 제품 목록을 최신 내용으로 유지할 수 있게 삭제 내용을 구독자로 보내야 하므로 Product 테이블에 대한 삭제는 추적할 수 있습니다.

  • 응용 프로그램에서는 1년을 초과하는 레코드를 주기적으로 제거하는 TransactionHistory와 같은 테이블에 기록 데이터를 저장할 수 있습니다. 이 테이블을 구독자가 현재 달의 트랜잭션에 있는 데이터만 받도록 필터링할 수 있습니다. 이전 데이터를 제거하는 게시자에서 매월 수행하는 일괄 삭제는 구독자와 아무 관련이 없지만 기본적으로 이 삭제를 계속 추적하고 열거합니다.

    이 시나리오에서는 일괄 처리가 발생하기 전에 시스템에서 작업을 중지할 수 있으며 응용 프로그램에서 삭제 추적을 해제할 수 있습니다. 처리가 완료되면 추적을 다시 설정할 수 있습니다.

중요 정보중요

게시자에서 다른 작업이 계속되는 경우 삭제 추적이 해제되어 있는 동안은 구독자로 전파되어야 하는 삭제가 발생하지 않도록 합니다.

삭제가 추적되지 않게 지정하려면