Ottimizzazione delle prestazioni della replica di tipo merge con il rilevamento condizionale delle eliminazioniOptimize Merge Replication Performance with Conditional Delete Tracking

Nota

Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Con la replica di tipo merge è possibile specificare che le eliminazioni per uno o più articoli non devono essere rilevate dai trigger di replica e dalle tabelle di sistema.With merge replication you can specify that deletes for one or more articles should not be tracked by replication triggers and system tables. Se si specifica questa opzione per un articolo, le eliminazioni non vengono rilevate o replicate dal server di pubblicazione o da qualsiasi Sottoscrittore.If you specify this option for an article, deletes are not tracked or replicated from the Publisher or any Subscribers. Questa opzione è disponibile per il supporto di numerosi scenari applicativi e per offrire l'ottimizzazione delle prestazioni, nei casi in cui la replica delle eliminazioni non è necessaria o desiderata.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. Il miglioramento delle prestazioni avviene per tre motivi: non vengono archiviati i metadati delle eliminazioni, le eliminazioni non vengono enumerate durante la sincronizzazione e, infine, non vengono replicate nel Sottoscrittore e applicate allo stesso.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.

Nota

Per utilizzare questo tipo di articoli è necessario che il livello di compatibilità della pubblicazione sia impostato almeno su 90RTM.To use download-only articles, the compatibility level of the publication must be at least 90RTM.

Questa opzione può essere specificata alla creazione della pubblicazione oppure attivata e disattivata se un'applicazione richiede la replica di alcune eliminazioni e non di altre, ad esempio eliminazioni batch.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. Gli esempi seguenti illustrano le modalità di utilizzo di questa opzione in un'applicazione.The following examples illustrate ways in which this option might be used in an application:

  • Un'applicazione per la forza vendita mobile in genere contiene tabelle come SalesOrderHeader, SalesOrderDetail e Product.An application for a mobile sales force typically has tables such as SalesOrderHeader, SalesOrderDetail and Product. Gli ordini vengono immessi nel Sottoscrittore e poi replicati nel server di pubblicazione, che spesso assicura i dati a un sistema di evasione degli ordini.Orders are entered at the Subscriber and then replicated to the Publisher, which often supplies data to an order fulfillment system. Molti lavoratori mobili utilizzano dispositivi palmari che hanno una capacità di archiviazione limitata: quando l'ordine viene ricevuto nel server di pubblicazione, può essere eliminato nel Sottoscrittore.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. L'eliminazione non viene propagata al server di pubblicazione, perché l'ordine è ancora attivo nel sistema.The delete is not propagated to the Publisher, because the order is still active in the system.

    In questo scenario, le eliminazioni non verrebbero rilevate per le tabelle SalesOrderHeader e SalesOrderDetail .In this scenario, deletes would not be tracked for the SalesOrderHeader and SalesOrderDetail tables. Verrebbero invece rilevate per la tabella Product perché se un prodotto viene eliminato nel server di pubblicazione l'eliminazione deve essere inviata al Sottoscrittore per mantenere aggiornato l'elenco dei prodotti.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.

  • Un'applicazione potrebbe archiviare i dati storici in una tabella come TransactionHistory, da cui vengono periodicamente eliminati i record più vecchi di un anno.An application could store historical data in a table such as TransactionHistory, which is periodically purged of records older than a year. La tabella potrebbe essere filtrata in modo che i Sottoscrittori ricevano solo i dati delle transazioni del mese corrente.The table could be filtered such that Subscribers only receive data on transactions within the current month. Le eliminazioni batch mensili del server di pubblicazione, con cui vengono eliminati i dati più vecchi, non interessano i Sottoscrittori, ma verrebbero comunque rilevate ed enumerate per impostazione predefinita.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 questo scenario, prima che abbia luogo l'elaborazione batch, sarebbe possibile arrestare l'attività del sistema e disabilitare il rilevamento delle eliminazioni dall'applicazione.In this scenario, before the batch processing occurred, activity could be stopped on the system, and the application could disable the tracking of deletes. Al termine dell'elaborazione, sarebbe possibile riabilitare la rilevazione.After the processing has finished, tracking could again be enabled.

Importante

Se nel server di pubblicazione prosegue l'attività, è necessario verificare che le eliminazioni che dovrebbero essere propagate ai Sottoscrittori non abbiano luogo mentre il rilevamento delle eliminazioni è disabilitato.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.

Per specificare di non rilevare le eliminazioniTo specify that deletes should not be tracked

Vedere ancheSee Also

Opzioni degli articoli per la replica di tipo merge Article Options for Merge Replication
Ottimizzare le prestazioni della replica di tipo merge con gli articoli di solo download Optimize Merge Replication Performance with Download-Only Articles