Partition Table (Particionamento de Tabelas) – Parte#1

Fala galera, esses dias atrás estava fazendo uma apresentação sobre SQL Server 2012 e surgiu uma dúvida de um dos participantes sobre particionamento horizontal de tabelas. Decidi procurar alguns materiais em português e não achei muitos, então resolvi dar minha contribuição sobre esse assunto.

Bom, os benefícios de se utilizar Partition Table no SQL Server são muitos, mas antes de falar dos benefícios, vamos criar um banco de dados de exemplo para simular uma tabela do mundo real e depois entender o que é o Partition Table.

Esse script cria um banco que irá simular uma tabela de visitas de um museu, imaginando que o museu foi inaugurado no dia 1º de Janeiro de 2012 e hoje é dia 31 de Dezembro, totalizando neste 1 ano de atividades 1 milhão de visitas. Com o outros artigos vamos criar as partições, separar esses dados e deixar cada agrupamento (visitas do mesmo mês) em uma tabela específica. Depois podemos comparar os prós e contras desta técnica.

 1: CREATE DATABASE dbMuseu
 2: GO
 3: 
 4: USE dbMuseu
 5: GO
 6: 
 7: CREATE TABLE tbVisitas
 8: (id INT IDENTITY(1,1) PRIMARY KEY
 9: ,nome VARCHAR(50)
 10: ,data DATE)
 11: GO
 12: 
 13: INSERT INTO tbVisitas (nome, data)
 14: VALUES (newid(), /*Dados aleatórios para o nome*/
 15: convert(date, convert(varchar(15),'2012-' +
 16: convert(varchar(5),(convert(int,rand()*12))+1) + '-' + /* Gerar mês aleatório */
 17: convert(varchar(5),(convert(int,rand()*27))+1) /* Gerar dia aleatório */ )))
 18: GO1000000

 

Ótimo, agora que já temos nossa base para simular… Vamos entender o que é o particionamento!

O particionamento horizontal de tabelas é uma técnica que utilizamos na arquitetura da estrutura de dados, para melhorar a performance/desempenho/gerenciamento do RDBMS. Esta técnica consiste em dividir os dados, baseado em um parametro, em tabelas e File Groups separados.

Para exemplificar, veja na imagem abaixo os dados que estavam na tabela Visitas foram divididos em 12 tabelas, cada uma armazenando os dados de um mês específico. A tabela azul armazena visitas de Janeiro, a tabela verde armazena de Fevereiro e a tabela laranja armazena visitas de Dezembro. Porém, a tabela preta representa a consulta de todas as visitas do ano inteiro…

image

 

 

 

 

 

 

No decorrer das próximas publicações, vamos trabalhar em atividades específicas necessárias para particionar com sucesso essa tabela de visitas do museu.

Sobre Diego Nogare 344 Artigos
Diego Nogare é Gerente Técnico de Engenharia de Machine Learning no Itaú-Unibanco. Também é professor em programas de pós graduação no Mackenzie e na FIAP, em São Paulo. Foi nomeado como Microsoft MVP por 11 anos seguidos, e hoje faz parte do programa Microsoft Regional Director.