Particionamento de tabela fácil no SQL Server 2005 para tabelas de fatos?

1

Eu tenho lido o artigo no link em preparação para implementando algum particionamento.

Eu tenho várias tabelas que eu quero particionar em um DATA_DT_ID inteiro, e eu realmente gostaria de ser capaz de lidar com isso de forma muito simples - adicionar novas partições no final, ao publicar um novo mês de dados, remover partições do back-end como eles expiraram.

Mas o artigo mostra uma série relativamente complexa de etapas necessárias para fazer isso.

Alguém criou algum procedimento armazenado para automatizar isso? Isso parece ser um problema bastante comum e geral no data warehousing.

    
por Cade Roux 11.08.2009 / 23:22

2 respostas

1

O particionamento de tabela é muito específico do banco de dados, pois os nomes dos grupos de arquivos e os caminhos dos novos arquivos adicionados aos grupos de arquivos são todos específicos do banco de dados individual.

Você deve ser capaz de configurar facilmente um procedimento armazenado com os comandos necessários para manipular a movimentação de dados pelas partições.

    
por 12.08.2009 / 00:05
1

Eu tenho, mais ou menos. O particionamento no SQL Server 2005 é um pouco complicado e provavelmente não vale a pena, a menos que você tenha dados suficientes para obter uma vitória real no desempenho. Em vez de criar partições dinamicamente, você deve criar partições até algum período no futuro. Não custa nada até você colocar dados neles.

A remoção de partições é um pouco mais complicada - você terá que criar uma tabela com o esquema correto e uma restrição de verificação na sua chave de partição e então fazer um alter table swap partition . Obter o ID da partição pode ser um pouco complicado, mas você pode fazê-lo a partir do dicionário de dados. Eu também fiz isso uma vez fazendo uma tabela com uma linha para cada partição no mesmo esquema de partições e selecionando $ partition. {Partition function} da tabela onde a chave é o valor apropriado.

A estrutura da tabela da sua mesa de rascunho deve estar alinhada com a tabela principal, incluindo os índices. Então você troca a partição e solta a mesa.

Eu acho que a tinta ainda está um pouco molhada no particionamento para o SQL Server 2005. Existem vários recursos ausentes, por exemplo, você não pode facilmente criar índices em uma partição específica; a única maneira de evitar a construção e reconstrução de índices para toda a tabela de fatos é fazer um truque semelhante ao trocar os dados para dentro e para fora da tabela de rascunho. O SQL Server 2008 também permite mover tabelas entre grupos de arquivos sem fazer o truque de índice clusterizado.

No entanto, não tenho conhecimento de nada que possa ser baixado para automatizar isso. Tudo que eu fiz por esse id DIY, e sim, é uma dor no traseiro.

    
por 24.08.2009 / 13:25