Você pode usar um filtro relativamente caro na replicação transacional?

1

Estou tentando replicar (transacional, push) uma tabela relativamente pequena (50 mil linhas), sujeita a vários filtros diferentes, que são bastante caros (cada um demorando pelo menos uma hora para ser concluído, envolvendo uma junção com uma tabela ter 4 bilhões de linhas em outro banco de dados). Espero que o artigo publicado tenha que ser sincronizado algumas vezes por dia.

Isso é viável ou devo procurar uma solução diferente?

  • Haverá algum problema com o bloqueio exclusivo da tabela original durante a replicação?
  • Atualmente, o status do Snapshot Agent diz "[0%] O processo está em execução e está aguardando uma resposta do servidor." Isso é normal para um filtro caro? Isso é aceitável na prática?
por user35961 10.05.2011 / 00:12

1 resposta

1

Por que vale a pena, aqui está um trecho de MSDN - Filtrando Publicado Dados :

Row filters in transactional publications can add significant overhead because the article filter clause is evaluated for each log row written for a published table, to determine whether the row should be replicated. Row filters in transactional publications should be avoided if each replication node can support the full data load, and the overall data set is reasonably small.

Provavelmente, é melhor filtrar as linhas usando um critério sargable muito rápido que seja totalmente independente de outras linhas / tabelas / bancos de dados.

    
por 10.05.2011 / 00:24