Voltar
Tipo: Tutorial

Recursos: nota Quickupdate

Do que se trata o artigo

Particionamento de dados é o recurso no qual o administrador de banco de dados poderá ter o domínio dos locais onde seus dados são armazenados. Atualmente, não utilizando esta funcionalidade, podemos determinar em qual diretório ou diretórios nossos arquivos de filegroup ficarão armazenados, porém no caso de vários filegroups não temos a certeza de qual lugar seu registro realmente está. Com o particionamento dos dados, podemos ter um gerenciamento melhor dos dados, ganhando em performance e também acompanhando em que partição/filegroup o registro está alocado.

Em que situação o artigo será útil

As informações contidas neste artigo podem ser aplicadas em ambientes de banco de dados de qualquer porte, fazendo com que o gerenciamento dos dados seja melhorado. “Espalhando” os dados em diferentes discos no servidor, o banco de dados visa melhorar o desempenho das leituras, facilitando assim a busca por resultados, onde ao invés de consultar toda a massa de dados, faz-se apenas a consulta em uma parte da mesma.

Particionamento de dados no SQL Server

Este artigo introduz o conceito de particionamento de dados no banco de dados SQL Server, podendo ser aplicado a partir da versão 2005 versão Enterprise. Ao longo do artigo serão abordados o conceito de filegroup, funções de partição e esquemas de partição, que são os primeiros passos para criar uma tabela particionada. Serão mostrados também os meios de gerenciamento do particionamento de dados, onde poderá se incluir e excluir intervalos de particionamento e transferir dados de partições entre tabelas utilizando o menor esforço administrativo possível.

Monitorar, propor e implementar soluções para melhoria do ambiente é função do DBA. Desde a versão 2005 do SQL Server (Versão Enterprise) é disponibilizada a funcionalidade de particionamento de dados. Esta facilita o gerenciamento de dados que são inseridos através de sistemas OLTP e também dados que podem ser utilizados para emissão de relatórios gerenciais e sistema OLAP. O particionamento de dados melhora o desempenho e simplifica a manutenção. Quando uma tabela grande é particionada, ao se executar uma consulta, blocos menores dos dados são lidos, fazendo com que as informações sejam retornadas de forma mais rápida.

Quando não é utilizado o particionamento de dados no SQL Server, pode-se armazenar uma tabela dentro de um filegroup apenas, e este filegroup pode conter vários arquivos em vários discos, porém você como DBA não consegue determinar em qual destes arquivos ou em qual dos discos você irá armazenar uma parte dos dados. Ao particionar uma tabela no banco de dados, pode-se realizar um dimensionamento físico dos dados,ou seja, em um ambiente onde se tem mais que um disco para se armazenar os dados e um deles é mais lento, pode-se escolher armazenar os dados que são utilizados para emissão de relatórios ou armazenamento de dados históricos(possivelmente dados referentes a notas ficais de uma empresa que precisam ficar arquivados durante pelos cinco anos) no disco mais lento e no disco com maior velocidade os dados atuais.

O particionamento dos dados é feito com base em um atributo, ou seja, um campo da tabela no momento da inserção será verificado e, com isso, o engine do SQL Server saberá para qual filegroup deverá encaminhar o registro. Além da tabela, o particionamento também pode ser utilizado em um índice ou view indexada, e funcionam da mesma forma como explicado para a tabela. Quando um índice estiver utilizando a mesma regra de particionamento da tabela, dizemos que a tabela está alinhada, ou seja, os dados da tabela e índice são armazenados no mesmo filegroup.

Para criar uma tabela, índice ou view indexada, uma função de partição e esquema de partição devem ser criados no banco de dados. A função de partição é um objeto independente no banco de dados que pode ser reaproveitado em mais de um particionamento e que estabelece os limites (intervalo) dos dados a serem inseridos nas tabelas. O esquema de partição é um objeto no banco de dados que é relacionado diretamente com a função de partição, onde faz o apontamento do intervalo com o filegroup ao qual os dados devem ser armazenados e também é declarado no momento da criação da tabela, índice ou view indexada.

...
Quer ler esse conteúdo completo? Tenha acesso completo