Share via


Enumerazione PurgeType

Specifica i criteri da utilizzare per eliminare i metadati quando si utilizza il metodo PurgeTombstoneTableData o PurgeTransactionSequenceData della classe SqlCeChangeTracking.

Spazio dei nomi  System.Data.SqlServerCe
Assembly:  System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)

Sintassi

'Dichiarazione
Public Enumeration PurgeType
'Utilizzo
Dim instance As PurgeType
public enum PurgeType
public enum class PurgeType
type PurgeType
public enum PurgeType

Membri

Nome membro Descrizione
None L'utilizzo di questo valore è riservato all'infrastruttura di rilevamento. Non utilizzarlo nel codice.
TimeBased Specifica che i metadati saranno eliminati in base al fatto che precedano o meno il numero di giorni specificato.
CsnBased Specifica che i metadati saranno eliminati in base al CSN dell'ultima transazione di modifica.
Max L'utilizzo di questo valore è riservato all'infrastruttura di rilevamento. Non utilizzarlo nel codice.

Osservazioni

Un'eliminazione basata sul tempo consente di eliminare i metadati precedenti il numero di giorni specificato. Ad esempio, in un'applicazione in cui viene utilizzato il rilevamento per implementare la sincronizzazione, i dati di rilevamento non sono più necessari dopo la sincronizzazione dei dati con il server (o un set di peer). L'applicazione potrebbe mantenere i dati di rilevamento solo per un numero specifico di giorni (n) e imporre una restrizione per gli utenti che sincronizzano il server (o il set di peer) almeno ogni n giorni.

Un'eliminazione basata sul CSN consente di eliminare i metadati, quando la relativa ultima modifica è stata apportata da una transazione, con un CSN che è minore o uguale a un CSN specificato. Il CSN associato a una riga indica l'ordine di commit delle transazioni nel quale è stato integrato il database. In un'eliminazione basata sul CSN, i dati vengono eliminati in base alla sequenza del commit, non alla sequenza temporale. Ad esempio, se l'ultima modifica di una riga è stata apportata da una transazione che ha eseguito il commit 100 transazioni prima rispetto all'ora corrente, tale riga potrebbe non essere più necessaria.

La pulizia basata sul CSN è utile poiché le modifiche apportate dalle transazioni sono visibili in un'applicazione solo dopo il commit della transazione. Ad esempio, un'applicazione di notifiche compilata sul rilevamento delle modifiche può notificare le modifiche ai Sottoscrittori solo dopo una transazione che ha modificato i commit dei dati. L'applicazione potrebbe mantenere un buffer delle ultime 100 transazioni per consentire ai Sottoscrittori di rispondere alle notifiche ed eliminare qualsiasi elemento precedente.

Un'eliminazione basata sul tempo non equivale a un'eliminazione basata sul CSN poiché il timestamp di una riga viene assegnato al momento di un inserimento o aggiornamento. In caso di transazione con esecuzione prolungata, il periodo di commit può differire in modo significativo dal valore del timestamp della riga modificata. Un'eliminazione basata sul CSN non consente di eliminare i metadati finché non è stato completato il commit della transazione.

Vedere anche

Riferimento

Spazio dei nomi System.Data.SqlServerCe

PurgeTombstoneTableData

PurgeTransactionSequenceData