Entendo como funciona o Particionamento Horizontal e Vertical de Tabelas

Entendo como funciona o Particionamento Horizontal e Vertical de Tabelas.

Anúncios

CONCEITOS SOBRE TABELAS E ÍNDICES PARTICIONADOS

• O particionamento facilita o gerenciamento de grandes tabelas ou índices, permitindo o acesso e o gerenciamento de subconjuntos de dados de forma rápida e eficaz, ao mesmo tempo em que mantém a integridade geral da coleção de dados.
• Com o particionamento, uma operação, como o carregamento de dados de um sistema OLTP para OLAP, leva apenas segundos em vez dos minutos ou horas necessários nas versões anteriores do SQL Server.
• As operações de manutenção realizadas nos subconjuntos de dados também são executadas com mais eficiência porque visam apenas aos dados necessários, em vez de toda a tabela.
• Os dados de tabelas e índices particionados são divididos em unidades que podem ser difundidas por mais de um grupo de arquivos em um banco de dados. Os dados são particionados horizontalmente, de forma que os grupos de linhas são mapeados em partições individuais.
• A tabela (ou índice) é tratada como uma única entidade lógica quando são executadas consultas ou atualizações nos dados. Todas as partições de um único índice ou de uma única tabela devem residir no mesmo banco de dados.
• As tabelas e os índices particionados suportam todas as propriedades e recursos associados ao design e à geração de consultas de tabelas e índices padrão, inclusive restrições, padrões, valores de identidade e carimbo de data/hora e gatilhos.
• A decisão entre implementar ou não o particionamento depende basicamente do tamanho atual ou futuro da tabela, de como ela será usada e como será seu desempenho com relação às consultas dos usuários e às operações de manutenção.
• Em geral, o particionamento de uma tabela extensa é apropriado quando se aplicam estas condições:
– A tabela contém, ou se espera que contenha, muitos dados usados de diferentes maneiras.
– O desempenho das consultas ou atualizações feitas na tabela não é o esperado ou o custo de manutenção excede os períodos de manutenção predefinidos.
• Por exemplo, se um mês de dados for usado basicamente para operações INSERT, UPDATE, DELETE e MERGE enquanto os meses anteriores foram usados principalmente para consultas SELECT, o gerenciamento dessa tabela seria mais fácil se ela
fosse particionada por mês.
• Esse benefício seria especialmente significativo se as operações de manutenção regulares da tabela visarem somente a um subconjunto de dados. Se a tabela não for particionada, essas operações podem consumir muitos recursos em um conjunto de dados inteiro.
• Com o particionamento, as operações de manutenção, como recriação de índice e desfragmentação, podem ser executadas em um único mês de dados de gravação enquanto os dados somente leitura permanecem disponíveis para acesso online.
• Para ampliar esse exemplo, suponha que você deseje mover um mês de dados somente leitura dessa tabela para uma tabela de data warehouse para análise.
• Com o particionamento, os subconjuntos de dados podem ser separados rapidamente em áreas de preparação para manutenção offline e, em seguida, adicionados como partições às tabelas existentes, considerando que todas essas tabelas estejam na mesma instância do banco de dados.
• Operações como essa, normalmente, levam segundos em vez de minutos ou horas que demoravam nas versões anteriores.
• Por fim, o particionamento de uma tabela ou índice pode aprimorar o desempenho das consultas se as partições forem projetadas corretamente, com base no tipo de consultas executadas com frequência em sua configuração de hardware.

PARTICIONAMENTO HORIZONTAL

• O particionamento horizontal divide uma tabela em várias tabelas. Cada tabela contém o mesmo número de colunas, mas menos linhas.
• Por exemplo, uma tabela que contém 1 bilhão de linhas pode ser particionada horizontalmente em 12 tabelas, com cada tabela menor representando um mês de dados de um ano específico. Qualquer consulta, ao requerer dados de um mês específico, fará referência somente à tabela apropriada.
• Determinar como particionar as tabelas horizontalmente depende de como os dados são analisados. Você deve particionar as tabelas de forma que as consultas façam referência ao menor número possível de tabelas.
• Caso contrário, consultas UNION em excesso, usadas para mesclar as tabelas logicamente no momento da consulta, podem afetar o desempenho.
• Particionamento de dados horizontalmente com base em idade e uso é comum.  Por exemplo, uma tabela pode conter dados dos últimos cinco anos, mas somente os dados do ano atual são acessados regularmente. Nesse caso, você pode considerar o particionamento dos dados em cinco tabelas, com cada tabela contendo dados somente de um ano.

PARTICIONAMENTO VERTICAL

• O particionamento vertical divide uma tabela em várias tabelas que contêm menos colunas. Os dois tipos de particionamento vertical são a normalização e divisão de linhas:

– Normalização é o processo padrão do banco de dados para remover colunas redundantes de uma tabela e colocá-las em tabelas secundárias, vinculadas à tabela primária pela relação da chave primária e chave estrangeira.
– O particionamento de linhas divide a tabela original verticalmente em tabelas com menos colunas. Cada linha lógica em uma tabela dividida coincide com a mesma linha lógica das outras tabelas conforme é identificado por uma coluna UNIQUE KEY idêntica, em todas as tabelas particionadas.
• Por exemplo, a junção da linha com ID 712 de cada tabela dividida recria a linha original.
• Como o particionamento horizontal, a divisão vertical deixa as consultas digitalizarem menos dados. Isso aumenta o desempenho de consulta.
• Por exemplo, uma tabela que contém sete colunas das quais somente as quatro primeiras são geralmente referenciadas, pode se beneficiar da divisão das três últimas colunas em uma tabela separada.
• O particionamento vertical deve ser considerado com cautela, porque a análise de dados de várias partições requer consultas que unem as tabelas. O particionamento vertical também pode comprometer o desempenho, se as partições forem muito grandes.

Autor: Junior Galvão - MVP

Profissional com vasta experiência na área de Tecnologia da Informação e soluções Microsoft. Graduado no Curso Superior em Gestão da Tecnologia de Sistemas de Informação. Pós-Graduado no Curso de Gestão e Engenharia de Processos para Desenvolvimento de Software com RUP na Faculdade FIAP - Faculdade de Informática e Administração Paulista de São Paulo. Pós-Graduado em Gestão da Tecnologia da Informação Faculdade - ESAMC Sorocaba. Formação MCDBA Microsoft, autor de artigos acadêmicos e profissionais postados em Revistas, Instituições de Ensino e WebSistes. Meu primeiro contato com tecnologia ocorreu em 1995 após meus pais comprarem nosso primeiro computador, ano em que as portas para este fantástico mundo se abriram. Neste mesmo ano, comecei o de Processamento de Dados, naquele momento a palavra TI não existia, na verdade a Tecnologia da Informação era conhecida como Computação ou Informática, foi assim que tudo começou e desde então não parei mais, continuando nesta longa estrada até hoje. Desde 2001 tenho atuado como Database Administrator - Administrador de Banco de Dados - SQL Server em tarefas de Administração, Gerenciamento, Migração de Servidores e Bancos de Dados, Estratégias de Backup/Restauração, Replicação, LogShipping, Implantação de ERPs que utilizam bancos SQL Server, Desenvolvimento de Funções, Stored Procedure, Triggers. Experiência na Coordenação de Projetos de Alta Disponibilidade de Dados, utilizando Database Mirroring, Replicação Transacional e Merge, Log Shipping. Atualmente trabalho como Administrador de Banco de Dados no FIT - Instituto de Tecnologia da Flextronics, como também, Consultor em Projetos de Tunnig e Performance para clientes, bem como, Professor Titular na Fatec São Roque. Desde 2008 exerço a função de Professor Universitário, para as disciplinas de Banco de Dados, Administração, Modelagem de Banco de Dados, Programação em Banco de Dados, Sistemas Operacionais, Análise e Projetos de Sistemas, entre outras. Possuo titulação Oficial Microsoft MVP - SQL Server renovada desde 2007.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s