Tudo sobre o MS SQL Server você encontra aqui - Fernando Santana - FullStack Web Developer

Esta semana abordaremos uma das funcionalidades aperfeiçoadas nesta nova versão do SQL Server, o In Memory OLTP. Foram feitas melhorias neste recurso que está presente desde a versão 2014.

Se você ainda não visualizou quais as funcionalidades disponíveis do SQL Server 2016, recomendo começar lendo a Série MS Sql Server 2016 – Parte 1. Tem um vídeo bem detalhado sobre as features da nova ferramenta.

Vamos ao que interessa.

In Memory OLTP (In Memory Optimization)

Esta nova funcionalidade, como dito anteriormente, presente desde a versão do MS SQL Server 2014, pode melhorar significativamente o desempenho do processamento transacional de seu banco de dados, tanto no carregamento de dados quanto na inserção de dados.

Um dos maiores problemas de performance está na escrita e leitura em disco dos registros transacionais. Sistemas que necessitam processar um grande número de instruções de INSERT simultaneamente, são grandes candidatos a utilizar esta funcionalidade.

Vamos listar os principais recursos do OLTP in-memory.

Tabelas com otimização de memória (MEMORY_OPTIMIZED)

Ao criar uma tabela, podemos definir através da palavra-chave MEMORY_OPTIMIZED, que uma tabela terá otimização em memória. O processo é transparente para você pois a Engine do MS SQL irá gerenciar isso pra você.

O sistema coloca os dados da tabela em memória para melhorar o desempenho e diminuir operações em disco.

Módulos compilados nativamente

Uma das novidades para a nova versão do MS SQL é a compilação de blocos TSQL (Transaction SQL). Toda a vez que modificamos o estado do banco de dados (online), é compilado o bloco SQL, por exemplo e um procedure, quando executada pela primeira vez. A instrução NATIVE_COMPILATION faz com que o script tenha este comportamento.

Este é um dos recursos fantásticos da nova versão. Com apenas uma instrução, a saber MEMORY_OPTIMIZED na criação da tabela, o MS SQL Server irá colocar os dados dela em memória e gerenciar este serviço para você. Irá ficar transparente pois as instruções de INSERT, SELECT são as mesmas. Veja no script abaixo um exemplo da criação desta tabela:

Uma observação importante é que CREATE INDEX e DROP INDEX não podem ser executados em uma tabela com otimização de memória; em vez disso, use .ALTER TABLE.

Muitos são os ganhos de utilizar o recurso In Memory OLTP. Você deve considerar os recursos da maquina antes de decidir usar o mesmo. Para os demais itens aqui citados, vale a pena consultar o manual do SQL antes de aplicar no projeto e avaliar os ganhos que deseja adquirir. Em geral, o recurso irá ajudar e muito o desempenho de seu banco de dados.

Os exemplos aqui utilizados podem ser visualizados em meu repositório do GitHub.

LEAVE A REPLY

Please enter your comment!
Please enter your name here