조건부 삭제 추적으로 병합 복제 성능 최적화Optimize Merge Replication Performance with Conditional Delete Tracking

이 항목 적용 대상: 예SQL Server없습니다Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

참고

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다.This feature will be removed in a future version of Microsoft SQL Server. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하세요.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

병합 복제를 사용하여 하나 이상의 아티클에 대한 삭제를 복제 트리거 및 시스템 테이블에서 추적할 수 없도록 지정할 수 있습니다.With merge replication you can specify that deletes for one or more articles should not be tracked by replication triggers and system tables. 아티클에 대해 이 옵션을 지정하면 게시자나 구독자에서 삭제가 추적되거나 복제되지 않습니다.If you specify this option for an article, deletes are not tracked or replicated from the Publisher or any Subscribers. 이 옵션은 다양한 응용 프로그램 시나리오를 지원하며 삭제를 복제할 필요가 없거나 삭제를 복제하는 것이 바람직하지 않은 상황에 대해 최적화된 성능을 제공합니다.This option is available to support a number of application scenarios and to provide a performance optimization for cases in which the replication of deletes is not necessary or desirable. 성능을 향상시키는 방법으로는 삭제에 대한 메타데이터를 저장하지 않는 방법, 동기화 중 삭제를 열거하지 않는 방법, 삭제가 구독자에 복제 및 적용되지 않게 하는 방법의 3가지가 있습니다.Performance is enhanced in three ways: metadata for deletes is not stored; deletes are not enumerated during synchronization; deletes are not replicated to and applied at the Subscriber.

참고

다운로드 전용 아티클을 사용하려면 게시의 호환성 수준이 적어도 90RTM 이상이어야 합니다.To use download-only articles, the compatibility level of the publication must be at least 90RTM.

옵션은 게시 생성 시 지정할 수 있으며 응용 프로그램에서 일부 삭제 내용은 복제하고 나머지 삭제 내용은 복제하지 않아야 하는 경우(예: 일괄 삭제) 옵션을 설정 또는 해제할 수 있습니다.The option can be specified when a publication is created or it can be toggled on and off if an application requires that some deletes be replicated and that others not be replicated, such as batch deletes. 다음 예에서는 응용 프로그램에서 이 옵션을 사용하는 방법을 설명합니다.The following examples illustrate ways in which this option might be used in an application:

  • 이동이 잦은 영업 사원이 사용하는 응용 프로그램에는 일반적으로 SalesOrderHeader, SalesOrderDetailProduct와 같은 테이블이 있습니다.An application for a mobile sales force typically has tables such as SalesOrderHeader, SalesOrderDetail and Product. 구독자에서 입력한 주문은 게시자로 복제되고 게시자에서는 이 데이터를 주문 수행 시스템에 제공합니다.Orders are entered at the Subscriber and then replicated to the Publisher, which often supplies data to an order fulfillment system. 이동이 잦은 영업 사원 중 많은 수가 저장소가 제한된 핸드헬드 장치를 사용하므로 게시자에서 주문을 받으면 해당 주문을 구독자에서 삭제할 수 있습니다.Many mobile workers use handheld devices which have limited storage: after the order is received at the Publisher, it can be deleted at the Subscriber. 해당 주문은 시스템 내에서 계속 활성 상태이므로 삭제가 게시자에 전파되지 않습니다.The delete is not propagated to the Publisher, because the order is still active in the system.

    이 시나리오에서 SalesOrderHeaderSalesOrderDetail 테이블에 대해 삭제를 추적할 수 없습니다.In this scenario, deletes would not be tracked for the SalesOrderHeader and SalesOrderDetail tables. 제품이 게시자에서 삭제되면 제품 목록을 최신 내용으로 유지할 수 있게 삭제 내용을 구독자로 보내야 하므로 Product 테이블에 대한 삭제는 추적할 수 있습니다.Deletes would be tracked for the Product table, because if a product is deleted at the Publisher, the delete should be sent to the Subscriber to keep the product list up to date.

  • 응용 프로그램에서는 1년을 초과하는 레코드를 주기적으로 제거하는 TransactionHistory와 같은 테이블에 기록 데이터를 저장할 수 있습니다.An application could store historical data in a table such as TransactionHistory, which is periodically purged of records older than a year. 이 테이블을 구독자가 현재 달의 트랜잭션에 있는 데이터만 받도록 필터링할 수 있습니다.The table could be filtered such that Subscribers only receive data on transactions within the current month. 이전 데이터를 제거하는 게시자에서 매월 수행하는 일괄 삭제는 구독자와 아무 관련이 없지만 기본적으로 이 삭제를 계속 추적하고 열거합니다.Monthly batch deletes at the Publisher that purge older data are not relevant to Subscribers, but they would still be tracked and enumerated by default.

    이 시나리오에서는 일괄 처리가 발생하기 전에 시스템에서 작업을 중지할 수 있으며 응용 프로그램에서 삭제 추적을 해제할 수 있습니다.In this scenario, before the batch processing occurred, activity could be stopped on the system, and the application could disable the tracking of deletes. 처리가 완료되면 추적을 다시 설정할 수 있습니다.After the processing has finished, tracking could again be enabled.

중요

게시자에서 다른 작업이 계속되는 경우 삭제 추적이 해제되어 있는 동안은 구독자로 전파되어야 하는 삭제가 발생하지 않도록 합니다.If other activity continues at the Publisher, you must ensure that deletes that should be propagated to Subscribers do not occur while delete tracking is disabled.

삭제가 추적되지 않게 지정하려면To specify that deletes should not be tracked

관련 항목:See Also

병합 복제를 위한 아티클 옵션 Article Options for Merge Replication
다운로드 전용 아티클로 병합 복제 성능 최적화Optimize Merge Replication Performance with Download-Only Articles