Replicação para tabelas de subscritores com otimização de memória

Aplica-se a: SQL ServerAzure SQL Managed Instance

Pode configurar, como tabelas otimizadas para memória, tabelas que atuam como assinantes de replicação de instantâneo e de replicação transacional, exceto no caso da replicação transacional peer-to-peer. Tabelas otimizadas para memória não são compatíveis com outras configurações de replicação. Esta funcionalidade está disponível a partir do SQL Server 2016 (13.x).

São necessárias duas configurações

Para configurar uma tabela otimizada para memória como subscritor

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

  2. Adicione artigos à publicação. Para obter mais informações, consulte Definição de um artigo.

    Se configurar utilizando o Transact-SQL, defina o parâmetro @schema_option do procedimento armazenado sp_addarticle para
    0x40000000000.

  3. Na janela de propriedades do artigo, defina Ativar otimização de memória para verdadeiro.

  4. Inicie a tarefa Snapshot Agent para gerar o instantâneo inicial desta publicação. Para mais informações, consulte Criar e Aplicar o Snapshot Inicial.

  5. Agora crie uma nova subscrição. No novo Assistente de Subscrição , defina a Subscrição Otimizada para Memóriacomo verdadeira.

As tabelas otimizadas para memória deverão agora começar a receber atualizações do publicador.

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

  1. Vai às propriedades de subscrição no Management Studio e define a Subscrição Otimizada para Memóriacomo verdadeira. As alterações não são aplicadas enquanto não reinicializar a subscrição.

    Se configurar utilizando o Transact-SQL, defina o novo parâmetro @memory_optimized do procedimento guardado sp_addsubscription como true.

  2. Vá às propriedades do artigo de uma publicação no Management Studio e defina Ativar Otimização de Memória como verdadeiro.

    Se configurar utilizando o Transact-SQL, defina o parâmetro @schema_option do procedimento armazenado sp_addarticle para
    0x40000000000.

  3. Tabelas otimizadas para memória não suportam índices agrupados. Para que a replicação contorne esta limitação convertendo o índice num índice não agrupado no destino, defina Converter índice agrupado em índice não agrupado para artigo otimizado para memória como verdadeiro.

    Se configurar utilizando Transact-SQL, defina o parâmetro @schema_option do procedimento armazenado sp_addarticle como 0x0000080000000000.

  4. Regenere o instantâneo.

  5. Reinicie a subscrição.

Observações e restrições

Apenas a replicação transacional unidirecional é suportada. A replicação transacional peer-to-peer não é suportada.

Não podes publicar tabelas otimizadas para memória.

Não podes configurar tabelas de replicação no distribuidor como tabelas otimizadas para memória.

Não podes incluir tabelas otimizadas para memória na replicação de fusões.

No subscritor, pode configurar como tabelas otimizadas para memória as tabelas envolvidas na replicação transacional, mas as tabelas do subscritor têm de cumprir os requisitos das tabelas otimizadas para memória. Este requisito impõe as seguintes restrições:

Modificação de um ficheiro de esquema

  • Se usar a opção DURABILITY = SCHEMA_AND_DATAde tabela otimizada para memória , a tabela deve ter um índice de chave primária não agrupado.

  • ANSI_PADDING deve ser ON.