Replicação para assinantes de tabela com otimização de memória

Aplica-se a:SQL ServerInstância Gerenciada de SQL do Azure

As tabelas que atuam como assinantes de replicação de instantâneo e de replicação transacional, excluindo a replicação transacional ponto a ponto, podem ser configuradas como tabelas otimizadas para memória. Outras configurações de replicação não são compatíveis com tabelas com otimização de memória. Este recurso está disponível a partir do SQL Server 2016 (13.x).

São necessárias duas configurações

Para configurar uma tabela com otimização de memória como um assinante

  1. Crie uma publicação transacional. Para obter mais informações, consulte Criar uma publicação.

  2. Adicione artigos à publicação. Para obter mais informações, consulte Define an Article.

    Se a configuração for feita usando Transact-SQL, defina o parâmetro @schema_option do procedimento armazenado sp_addarticle para
    0x40000000000.

  3. Na janela de propriedades do artigo, defina Habilitar Otimização de memória como true.

  4. Inicie o trabalho do Agente de Instantâneo para gerar o instantâneo inicial para essa publicação. Para obter mais informações, consulte Criar e aplicar o instantâneo inicial.

  5. Agora, crie uma nova assinatura. No Assistente para Nova Assinatura , defina a Assinatura de Otimização de Memória como true.

As tabelas com otimização de memória agora devem começar a receber atualizações do publicador.

Reconfigurar uma replicação de transação existente

  1. Vá para propriedades de assinatura no Management Studio e defina Assinatura com Otimização de Memória como true. As alterações não são aplicadas até a assinatura ser reiniciada.

    Se estiver configurando usando Transact-SQL, defina o novo parâmetro @memory_optimized do procedimento armazenado sp_addsubscription para verdadeiro.

  2. Vá até as propriedades do artigo para uma publicação no Management Studio e defina a otimização Habilitar memória como true.

    Se estiver configurando usando Transact-SQL, defina o parâmetro @schema_option do procedimento armazenado sp_addarticle como
    0x40000000000.

  3. Tabelas com otimização de memória não dão suporte a índices clusterizados. Para que a replicação cuide disso, convertendo-o em um índice não clusterizado no destino, defina Converter índice clusterizado em não clusterizado para artigo com otimização de memória como verdadeiro.

    Se a configuração usar Transact-SQL, defina o parâmetro @schema_option do procedimento armazenado sp_addarticle como 0x0000080000000000.

  4. Regenere o instantâneo.

  5. Reinicialize a assinatura.

Limitações e restrições

Somente há suporte para a replicação transacional unidirecional. Não há suporte para a replicação transacional ponto a ponto.

Não é possível publicar as tabelas com otimização de memória.

As tabelas de replicação no distribuidor não podem ser configuradas como tabelas com otimização de memória.

A replicação de mesclagem não pode incluir tabelas com otimização de memória.

No servidor assinante, as tabelas envolvidas na replicação transacional podem ser configuradas como tabelas com otimização de memória, mas as tabelas do assinante devem atender aos requisitos das tabelas com otimização de memória. Isso requer as restrições a seguir.

Modificando um arquivo de esquema

  • Se você estiver usando a opção de tabela com otimização de memória DURABILITY = SCHEMA_AND_DATA , a tabela deverá ter um índice de chave primária não clusterizado.

  • ANSI_PADDING deve ser ON.