Enumeração PurgeType
Especifica os critérios a serem usados para limpar metadados quando é usado o método PurgeTombstoneTableData ou o método PurgeTransactionSequenceData da classe SqlCeChangeTracking.
Namespace: System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (em System.Data.SqlServerCe.dll)
Sintaxe
'Declaração
Public Enumeration PurgeType
'Uso
Dim instance As PurgeType
public enum PurgeType
public enum class PurgeType
type PurgeType
public enum PurgeType
Membros
Nome do membro | Descrição | |
---|---|---|
None | Este valor está reservado para ser usado pela infraestrutura de controle. Não o utilize no seu código. | |
TimeBased | Especifica que os metadados serão excluídos se forem anteriores a um determinado número de dias. | |
CsnBased | Especifica que os metadados serão excluídos com base no CSN (número de sequência de confirmação) da última transação a modificá-los. | |
Max | Este valor está reservado para ser usado pela infraestrutura de controle. Não o utilize no seu código. |
Comentários
Uma limpeza baseada na hora exclui os metadados quando estes são anteriores a um determinado número de dias. Por exemplo, em um aplicativo que usa o controle para implementar a sincronização, os dados de controle não são mais necessários após a sincronização de dados com o servidor (ou um conjunto de pares). O aplicativo poderá reter dados de controle somente por um determinado número de dias (n) e impor uma restrição para que os usuários se sincronizem com o servidor (ou o conjunto de pares) pelo menos a cada n dias.
Uma limpeza baseada no CSN exclui os metadados quando estes são modificados pela última vez por uma transação, com um CSN que seja menor ou igual a um CSN especificado. O CSN associado a uma linha indica a ordem de confirmação das transações em que o banco de dados foi inscrito. Em uma limpeza baseada no CSN, os dados são excluídos com base na sequência de confirmação, não em função do tempo. Por exemplo, se uma linha foi modificada pela última vez por uma transação que confirmou 100 transações até a hora atual, ela pode não ser mais necessária.
A limpeza com base no CSN faz sentido porque as alterações feitas pelas transações ficam visíveis para um aplicativo somente após a transação ser confirmada. Por exemplo, um aplicativo de notificações incorporado ao controle de alterações pode notificar os assinantes sobre as alterações somente após a confirmação de uma transação que teve dados alterados. O aplicativo poderá reter um buffer das últimas 100 transações, para permitir que os assinantes respondam às notificações, e limpar as mais antigas que essas.
Uma limpeza baseada na hora não é equivalente à limpeza baseada no CSN, pois o carimbo de data/hora de uma linha é atribuído no momento de uma inserção ou atualização. No caso de uma transação demorada, a hora da confirmação pode diferir significativamente do valor do carimbo de data/hora da linha modificada. Uma limpeza baseada no CSN não exclui metadados até que a transação tenha sido confirmada.