Replicação para subscritores de tabelas otimizadas para memória

Aplica-se a: SQL ServerAzure SQL Managed Instance

As tabelas que atuam como assinantes de replicação de instantâneo e de replicação transacional, com exceção da 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 otimizadas para memória. 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 Enable Memory optimization em true.

  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 até que a subscrição seja reinicializada.

    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 trate disto convertendo-o num índice não clusterizado no destino, defina Converter índice clusterizado em índice não clusterizado 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.

Tabelas otimizadas para memória não podem ser publicadas.

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

A replicação por fusão não pode incluir tabelas otimizadas para 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 cumprir os requisitos aplicáveis às tabelas com otimização de memória. Isto exige as seguintes restrições.

Modificação de um ficheiro de esquema

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

  • ANSI_PADDING Deve estar ligado.