Configuração do armazenamento para tabelas com otimização de memória
Aplica-se a: SQL Server
Você precisa configurar a capacidade de armazenamento e operações de entrada/saída por segundo (IOPS).
Capacidade de Armazenamento
Use as informações em Estimar requisitos de memória para tabelas com otimização de memória para estimar o tamanho na memória das tabelas com otimização de memória duráveis do banco de dados. Como os índices não são mantidos para tabelas com otimização de memória, não inclua o tamanho dos índices.
Depois de determinar o tamanho, forneça espaço em disco suficiente para manter os arquivos de ponto de verificação, que são usados para armazenar dados recentemente alterados. Os dados armazenados contêm não apenas o conteúdo de novas linhas adicionadas às tabelas na memória, mas também novas versões de linhas existentes. Esse armazenamento aumenta quando as linhas são inseridas ou atualizadas. As versões de linha são mescladas e o armazenamento é recuperado quando ocorre um truncamento de log. Se o truncamento de log for atrasado por qualquer motivo, o armazenamento de OLTP in-memory aumentará.
Um bom ponto de partida para dimensionar o armazenamento para essa área é reservar quatro vezes o tamanho das tabelas duráveis na memória. Monitore o uso do espaço e esteja preparado para expandir o armazenamento disponível para isso, se necessário.
IOPS de armazenamento
O OLTP in-memory pode aumentar significativamente a produtividade da carga de trabalho. Portanto, é importante garantir que a E/A não seja um gargalo.
Ao migrar tabelas baseadas em disco para tabelas com otimização de memória, verifique se o log de transações está em uma mídia de armazenamento compatível com atividade de log de transações aumentada. Por exemplo, se a mídia de armazenamento oferece suporte a operações de log de transações a 100 MB/s e as tabelas com otimização de memória resultam em um desempenho cinco vezes maior, a mídia de armazenamento do log de transações deve ser capaz de oferecer suporte também à melhoria de desempenho cinco vezes maior, para evitar que a atividade de log de transações se torne um gargalo de desempenho.
Tabelas com otimização de memória são persistidas em arquivos de ponto de verificação, que são distribuídos em um ou mais contêineres. Cada contêiner normalmente deve ser mapeado para seu próprio dispositivo de armazenamento e é usado para uma maior capacidade de armazenamento e um melhor IOPS. Você precisa garantir que o IOPS sequencial da mídia de armazenamento pode dar suporte a até 3 vezes mais a taxa de transferência do log de transações. As gravações em arquivos de ponto de verificação são 256 KB para arquivos de dados e 4 KB para arquivos delta.
- Por exemplo, se tabelas com otimização de memória gerarem 500 MB/s sustentados de atividade no log de transações, o armazenamento das tabelas com otimização de memória deverá dar suporte para um IOPS de 1,5 GB/s. A necessidade de dar suporte a três vezes a taxa de transferência sustentada do log de transações surge da observação de que os pares de arquivos de dados e delta são gravados primeiro com os dados iniciais e, em seguida, precisam ser lidos/regravados como parte de uma operação de mesclagem.
Outro fator na estimativa de IOPS para armazenamento é o tempo de recuperação para tabelas com otimização de memória. Dados de tabelas duráveis devem ser lidos na memória antes de um banco de dados ser disponibilizado para aplicativos. Normalmente, carregar dados em tabelas com otimização de memória pode ser feito na velocidade do IOPS. Portanto, se o armazenamento total para tabelas duráveis com otimização de memória for de 60 GB e você desejar ser capaz de carregar esses dados em 1 minuto, o IOPS do armazenamento deverá ser definido em 1 GB/s.
Arquivos de ponto de verificação normalmente são distribuídos uniformemente em todos os contêineres, se houver espaço. Com o SQL Server 2014, você precisa provisionar um número ímpar de contêineres para alcançar uma distribuição uniforme – a partir do 2016, números ímpar e par de contêineres levam a uma distribuição uniforme.
Criptografia
No SQL Server 2016 (13.x) e versões posteriores, o armazenamento para tabelas com otimização de memória será criptografado em repouso como parte da habilitação de TDE (Transparent Data Encryption) no banco de dados. Para obter mais informações, confira Transparent Data Encryption. No SQL Server 2014 (12.x), os arquivos de ponto de verificação não são criptografados, mesmo se a TDE estiver habilitada no banco de dados.
Dados em tabelas com otimização de memória não duráveis (SCHEMA_ONLY) não são gravadas no disco em nenhum momento. Portanto, o TDE não se aplica a essas tabelas.
Confira também
Criando e gerenciando armazenamento para objetos com otimização de memória