Partilhar via


Consultor de Otimização de Memória

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure

Os relatórios de Análise de Desempenho de Transações (ver Determinar se uma Tabela ou Procedimento Armazenado Deve Ser Portado para In-Memory OLTP) informam-no sobre quais as tabelas da sua base de dados que beneficiarão se forem portadas para usar In-Memory OLTP. Depois de identificar uma tabela que gostaria de portar para usar In-Memory OLTP, pode usar o consultor de otimização de memória no SQL Server Management Studio para o ajudar a migrar a tabela baseada em disco para uma tabela otimizada para memória.

O consultor de otimização de memória permite-lhe:

  • Identificar quaisquer funcionalidades usadas numa tabela baseada em disco que não sejam suportadas para tabelas otimizadas para memória.

  • Migre uma tabela e dados para memória otimizada (se não houver recursos não suportados).

Para informações sobre metodologias de migração, consulte In-Memory OLTP - Padrões Comuns de Carga de Trabalho e Considerações de Migração.

Guião de Utilização do Consultor de Otimização de Memória

No Object Explorer, clique com o botão direito na tabela que quer converter e selecione Memory-Optimization Advisor. Isto irá mostrar a página de boas-vindas do Table Memory Optimization Advisor.

Lista de Verificação de Otimização de Memória

Quando clicar em Seguir na página de boas-vindas do Table Memory Optimization Advisor, verá a lista de verificação de otimização de memória. As tabelas otimizadas para memória não suportam todas as funcionalidades de uma tabela baseada em disco. A lista de verificação de otimização de memória indica se a tabela baseada em disco utiliza alguma funcionalidade incompatível com uma tabela otimizada para memória. O Table Memory Optimization Advisor não modifica a tabela baseada em disco para que possa ser migrada para usar In-Memory OLTP. Deve fazer essas alterações antes de continuar a migração. Para cada incompatibilidade encontrada, o Table Memory Optimization Advisor apresenta um link para informação que pode ajudar a modificar as suas tabelas baseadas em disco.

Se quiser manter uma lista destas incompatibilidades para planear a sua migração, clique em Generar Relatório para gerar uma lista HTML.

Se a sua tabela não tiver incompatibilidades e estiver ligado a uma instância SQL Server 2014 (12.x) com In-Memory OLTP, clique em Seguinte.

Avisos de Otimização de Memória

A página seguinte, avisos de otimização de memória, contém uma lista de problemas que não impedem a migração da tabela para usar In-Memory OLTP, mas que podem causar falhas no comportamento de outros objetos (como procedimentos armazenados ou funções CLR) ou resultar em comportamentos inesperados.

Os primeiros avisos da lista são informativos e podem ou não ser aplicáveis à sua tabela. Os links na coluna da direita da tabela levam-no a mais informações.

A tabela de avisos também mostrará potenciais condições de aviso que não estão presentes na sua tabela.

Os avisos acionáveis terão um triângulo amarelo na coluna da esquerda. Se houver avisos passíveis de ação, deve sair da migração, resolver os avisos e depois relançar o processo. Se não resolver os avisos, a sua tabela migrada pode causar uma falha.

Clique em Gerar Relatório para gerar um relatório HTML destes avisos. Clique Avançar para continuar.

Revisão das Opções de Otimização

O ecrã seguinte permite-te modificar as opções para a migração para In-Memory OLTP:

Grupo de ficheiros otimizado para memória
O nome do teu grupo de ficheiros otimizado para memória. Uma base de dados deve ter um grupo de ficheiros otimizado para memória com pelo menos um ficheiro antes de poder criar uma tabela otimizada para memória.

Se não tiver um grupo de ficheiros otimizado para memória, pode alterar o nome predefinido. Grupos de ficheiros otimizados para memória não podem ser eliminados. A existência de um grupo de ficheiros otimizado para memória pode desabilitar algumas funcionalidades ao nível da base de dados, como o FECHO AUTOMÁTICO e o espelhamento de bases de dados.

Se uma base de dados já tiver um grupo de ficheiros otimizado para memória, este campo será pré-preenchido com o seu nome e não poderá alterar o valor desse campo.

Nome lógico do ficheiro e caminho do ficheiro
O nome do ficheiro que irá conter a tabela otimizada para memória. Uma base de dados deve ter um grupo de ficheiros otimizado para memória com pelo menos um ficheiro antes de poder criar uma tabela otimizada para memória.

Se não tiver um grupo de ficheiros otimizado para memória existente, pode alterar o nome e o caminho predefinidos do ficheiro a ser criado no final do processo de migração.

Se já tiver um grupo de ficheiros otimizado para memória, estes campos estarão pré-preenchidos e não poderá alterar os valores.

Renomear a tabela original como
No final do processo de migração, será criada uma nova tabela otimizada para memória com o nome atual da tabela. Para evitar um conflito de nomes, a tabela atual deve ser renomeada. Podes mudar esse nome nesta área.

Custo atual estimado da memória (MB)
O Memory-Optimization Advisor estima a quantidade de memória que a nova tabela otimizada para memória irá consumir com base nos metadados da tabela baseada em disco. O cálculo do tamanho da tabela é explicado em Tamanho de Tabela e Linha em Tabelas Otimizadas para Memória.

Se não for atribuída memória suficiente, o processo de migração pode falhar.

Também copiar os dados da tabela para a nova tabela otimizada para memória
Selecione esta opção se quiser também mover os dados da tabela atual para a nova tabela otimizada para memória. Se esta opção não for selecionada, a nova tabela otimizada para memória será criada sem linhas.

A tabela será migrada como uma tabela durável por padrão.
In-Memory OLTP suporta tabelas não duráveis com desempenho superior em comparação com tabelas duráveis otimizadas para memória. No entanto, os dados numa tabela não durável serão perdidos após o reinício do servidor.

Se esta opção for selecionada, o Consultor de Otimização de Memória criará uma tabela não persistente em vez de uma tabela persistente.

Advertência

Selecione esta opção apenas se compreender o risco de perda de dados associado a tabelas não duráveis.

Clique Avançar para continuar.

Rever Conversão de Chave Primária

O ecrã seguinte é Rever Conversão de Chave Primária. O Memory-Optimization Advisor irá detetar se existem uma ou mais chaves primárias na tabela e preenche a lista de colunas com base nos metadados da chave primária. Caso contrário, se quiser migrar para uma tabela persistente otimizada para memória, deve criar uma chave primária.

Se não existir uma chave primária e a tabela estiver a ser migrada para uma tabela não durável, este ecrã não aparecerá.

Para colunas textuais (colunas com tipos char, nchar, varchar e nvarchar) deve selecionar uma colação apropriada. In-Memory OLTP só suporta colações BIN2 para colunas numa tabela otimizada para memória e não suporta colações com caracteres suplementares. Consulte as Colações e Páginas de Códigos para informações sobre as colações suportadas e o impacto potencial de uma alteração na colação.

Pode configurar os seguintes parâmetros para a chave primária:

Selecione um novo nome para esta chave primária
O nome principal da chave para esta tabela deve ser único dentro da base de dados. Pode alterar o nome da chave primária aqui.

Selecione o tipo desta chave primária
In-Memory OLTP suporta dois tipos de índices numa tabela otimizada para memória:

  • Um índice de hash não agrupado. Este índice é melhor para índices com muitas consultas de pontos. Pode configurar a contagem de baldes para este índice no campo Contagem de Baldes .

  • Um índice NÃO agrupado. Este tipo de índice é melhor para índices com muitas consultas por intervalo. Pode configurar a ordem de ordenação para cada coluna na lista de Coluna e Ordem de Ordenação.

Para compreender o tipo de índice melhor para a sua chave primária, veja Índices de Hash.

Clique em Seguinte depois de fazer as suas escolhas de chave principal.

Conversão do Índice de Revisão

A página seguinte é Conversão do Índice de Avaliações. O Memory-Optimization Advisor irá detetar se existem um ou mais índices na tabela e preencher a lista de colunas e o tipo de dados. Os parâmetros que pode configurar na página de Conversão do Índice de Revisão são semelhantes aos da página anterior, Conversão de Chave Primária de Revisão.

Se a tabela tiver apenas uma chave primária e esta estiver a ser migrada para uma tabela durável, este ecrã não aparecerá.

Depois de tomar uma decisão para cada índice na sua tabela, clique em Próximo.

Verificar Ações de Migração

A página seguinte é Verificar Ações de Migração. Para scriptar a operação de migração, clique em Script para gerar um script Transact-SQL. Pode então modificar e executar o script. Clique em Migrar para iniciar a migração da tabela.

Depois de concluído o processo, atualize o Explorador de Objetos para ver a nova tabela otimizada para memória e a tabela antiga baseada em disco. Podes manter a tabela antiga ou apagá-la quando te for conveniente.

Ver também

Migrando para In-Memory OLTP