Tenho uma tabela que contém quatro anos de dados, onde para cada mês tenho uma partição baseada em um grupo de arquivos com dois arquivos. Inesperadamente, recebi mais oito anos de dados e preparei os arquivos de banco de dados e grupos de arquivos para esses anos.
O esquema atual abrange 200901 - 201512 e agora preciso adicionar 200001 - 200812. Qual é a melhor maneira de colocar isso online para a tabela particionada?
- Crie um novo esquema de partição e função de partição e altere o índice clusterizado para esse novo esquema de partição; ou
- Posso alterar de alguma forma o esquema de partição existente e a função de partição?
Estou perguntando porque a tabela atual tem 18 bilhões de linhas e quero fazer isso da maneira eficiente :)
Aqui estão duas práticas recomendadas para particionamento relacionadas à questão:
http://www.informit.com/articles/article.aspx?p=1946159&seqNum=5
Se a extremidade esquerda de sua partição estiver vazia, use ALTER PARTITION FUNCTION SPLIT RANGE para adicionar novos intervalos à função de partição.
Para verificar se a partição mais à esquerda está vazia, use uma consulta como a seguinte:
Se a primeira partição não estiver vazia, as melhores práticas recomendam que você crie uma nova função com todos os valores, crie uma nova tabela nessa função e insira os dados na nova tabela.
Além disso, se a partição esquerda tiver apenas alguns registros, uma divisão pode ser adequada. Não tenho certeza disso, pois nunca experimentei.
Faça o que fizer, certifique-se de deixar algumas partições vazias na partição mais à esquerda e mais à direita quando terminar. Posso até criar intervalos de partição para 0 e 1 e, em seguida, adicionar uma restrição de verificação para evitar que a primeira partição obtenha dados nela. Faça a mesma coisa para o final.