Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Memory Optimized Filegroup

Eae pessoal, tudo bom com vocês?

Nesse post venho trazer para vocês um lab bem bacaninha sobre como criar um Memory Optimized Filegroup.

Ai você me pergunta o que é diabos é isso?

Trata-se de um filegroup utilizado para a criação de In-memory optimized tables, tabelas essas que residem na memoria do servidor e são utilizadas para melhorias de performance em algumas aplicações.

Bom vamos lá.

Antes de começarmos uma observação importante, só podemos adicionar um Memory Optimized Filegroup por database e uma vez que foi adicionado não é mais possível a sua remoção.

Vamos realizar a criação de um database para o exemplo.

CREATE DATABASE InMemory

Agora que já temos o database criado, podemos adicionar um Memory Optimized Filegroup.

ALTER DATABASE InMemory ADD FILEGROUP InMemory_mod CONTAINS MEMORY_OPTIMIZED_DATA

Uma vez que o Memory Optimized Filegroup o tenha sido criado, vamos adicionar um arquivo para o filegroup, conforme abaixo:

ALTER DATABASE InMemory ADD FILE (name='InMemory_mod', filename='c:\data\imoltp_mod') TO FILEGROUP InMemory_mod

Agora que já temos o nosso Memory Optimized Filegroup, podemos criar tabelas nele para melhorar a performance de nossas aplicações.

Se atente que é possível criar tabelas que serão persistidas e que não serão persistidas.

CREATE TABLE dbo.Test_Persisted (   
    Id INT IDENTITY(1,1) PRIMARY KEY NONCLUSTERED,  
    Nome VARCHAR(100) NOT NULL,   
    DataNascimento DATETIME  
    ) WITH (MEMORY_OPTIMIZED=ON) --Indica que a tabela será persistida mesmo havendo um restart do servidor  
GO  
CREATE TABLE dbo.Test_NonPersisted (   
    Id INT IDENTITY(1,1) PRIMARY KEY NONCLUSTERED,  
    Nome VARCHAR(100) NOT NULL,   
    DataNascimento DATETIME  
    ) WITH (MEMORY_OPTIMIZED=ON, DURABILITY=SCHEMA_ONLY) --Indica que a tabela será descartada quando houver um restart do servidor.  
GO  

É isso pessoal, espero que tenham gostado.

Close Bitnami banner
Bitnami