Requisitos para usar tabelas com otimização de memória
Aplica-se a: SQL Server
Este artigo descreve os requisitos para adoção de recursos na memória no SQL Server.
Requisitos
Além dos SQL Server 2022: requisitos de hardware e software, os requisitos para usar o OLTP in-memory são os seguintes:
SQL Server 2016 SP1 (13.x) e versões posteriores, qualquer edição. Para o SQL Server 2014 (12.x) e o SQL Server 2016 (13.x) RTM (pré-SP1), você precisa da edição Enterprise, Developer ou Evaluation.
o OLTP in-memory requer a versão de 64 bits do SQL Server.
O SQL Server precisa de memória suficiente para reter os dados em tabelas e índices com otimização de memória, além de memória adicional para dar suporte à carga de trabalho online. Para obter mais informações, consulte Estimar requisitos de memória para tabelas com otimização de memória.
Ao executar o SQL Server em uma VM (máquina virtual), confirme que memória suficiente está alocada à VM para dar suporte à memória necessária para tabelas e índices com otimização de memória. Dependendo do aplicativo host da VM, a opção de configuração para garantir a alocação de memória para a VM pode ser chamada de Reserva de Memória ou ao usar Memória Dinâmica, RAM Mínima. Verifique se essas configurações são suficientes para atender às necessidades dos bancos de dados no SQL Server.
O espaço livre em disco é duas vezes o tamanho das tabelas duráveis com otimização de memória.
Um processador precisa dar suporte à instrução
cmpxchg16b
para usar o OLTP in-memory. Todos os processadores de 64 bits modernos dão suporte acmpxchg16b
.Se você usar uma máquina virtual e o SQL Server exibir um erro causado por um processador mais antigo, confira se o aplicativo host da VM tem uma opção de configuração para permitir
cmpxchg16b
. Caso contrário, você pode usar Hyper-V, que dá suporte acmpxchg16b
sem precisar modificar uma opção de configuração.O OLTP in-memory é instalado como parte dos Serviços de Mecanismo de Banco de Dados.
Para instalar a geração de relatórios (Determinar se uma tabela ou um procedimento armazenado deve ser transferido para o OLTP in-memory) e o SQL Server Management Studio (para gerenciar o OLTP in-memory por meio do Pesquisador de Objetos do SQL Server Management Studio), baixe o SSMS (SQL Server Management Studio).
Observação
- Para obter mais informações específicas sobre dados na memória no Banco de Dados SQL do Azure, confira Otimizar o desempenho usando tecnologias na memória no Banco de Dados SQL do Azure e o Blog: OLTP in-memory no Banco de Dados SQL do Azure.
- Para obter mais informações específicas sobre dados na memória na Instância Gerenciada de SQL do Azure, confira Otimizar o desempenho usando tecnologias na memória na Instância Gerenciada de SQL do Azure.
Observações importantes sobre o uso do OLTP in-memory
No SQL Server 2016 (13.x) e versões posteriores, não há limite de tamanho para as tabelas com otimização de memória, além da memória disponível.
No SQL Server 2014 (12.x), o tamanho total da memória de todas as tabelas duráveis de um banco de dados não deve exceder 250 GB. Para obter mais informações, consulte Estimar requisitos de memória para tabelas com otimização de memória.
Observação
A partir do SQL Server 2016 (13.x) SP1, a Edição Standard e a Edição Express são compatíveis com o OLTP in-memory, mas elas impõem cotas à quantidade de memória que você pode usar para tabelas com otimização de memória em um determinado banco de dados. Na Edição Standard são 32 GB por banco de dados; na Express Edition são 352 MB por banco de dados.
Se criar um ou mais bancos de dados com tabelas com otimização de memória, você deverá habilitar a IFI (Inicialização Instantânea de Arquivo) ao conceder à conta de inicialização do serviço SQL Server o direito do usuário SE_MANAGE_VOLUME_NAME. Sem a IFI, os arquivos de armazenamento com otimização de memória (arquivos delta e de dados) serão inicializados na criação, o que pode ter um impacto negativo no desempenho de sua carga de trabalho. Veja mais informações sobre a IFI, inclusive como habilitá-la, em Inicialização imediata de arquivo do banco de dados.
-
Problema conhecido: em bancos de dados com tabelas otimizadas para memória, executar um backup de log de transações sem recuperação e, posteriormente, executar uma restauração de log de transações com recuperação pode resultar em um processo de restauração de banco de dados sem resposta. Esse problema também pode afetar a funcionalidade de envio de logs. Para contorná-lo, a instância do SQL Server pode ser reiniciada antes de iniciar o processo de restauração.