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

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

As tabelas que atuam como assinantes de replicação transacional e de instantâneo, com exceção da replicação transacional Ponto a Ponto, podem ser configuradas como tabelas com otimização de 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 assinatura.

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

    Se a configuração usar Transact-SQL, defina o parâmetro @schema_option do procedimento armazenado sp_addarticle como
    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 a configuração usar Transact-SQL, defina o novo parâmetro @memory_optimized do procedimento armazenado sp_addsubscription como true.

  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 a configuração usar 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 trate disto, convertendo-o para um índice não clusterizado no destino, defina Converter índice clusterizado em não clusterizado para artigo com otimização de memória como true.

    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 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 de 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.