Temos uma tabela particionada usando o seguinte esquema de partição e função
CREATE PARTITION FUNCTION [pf_monthly_dateid](int) AS RANGE LEFT FOR VALUES (20140100, 20140200, 20140300, 20140400, 20140500, 20140600, 20140700, 20140800, 20140900, 20141000, 20141100, 20141200, 20150100, 20150200, 20150300, 20150400, 20150500, 20150600, 20150700, 20150800, 20150900, 20151000, 20151100, 20151200, 20160100, 20160200, 20160300, 20160400, 20160500, 20160600, 20160700, 20160800, 20160900, 20161000, 20161100, 20161200, 20170100, 20170200, 20170300, 20170400, 20170500, 20170600, 20170700, 20170800, 20170900, 20171000, 20171100, 20171200, 20180100, 20180200, 20180300, 20180400, 20180500, 20180600, 20180700, 20180800, 20180900, 20181000, 20181100, 20181200)
GO
CREATE PARTITION SCHEME [ps_monthly_dateid] AS PARTITION [pf_monthly_dateid] TO ([PRIMARY], [201401], [201402], [201403], [201404], [201405], [201406], [201407], [201408], [201409], [201410], [201411], [201412], [201501], [201502], [201503], [201504], [201505], [201506], [201507], [201508], [201509], [201510], [201511], [201512], [201601], [201602], [201603], [201604], [201605], [201606], [201607], [201608], [201609], [201610], [201611], [201612], [201701], [201702], [201703], [201704], [201705], [201706], [201707], [201708], [201709], [201710], [201711], [201712], [201801], [201802], [201803], [201804], [201805], [201806], [201807], [201808], [201809], [201810], [201811], [201812])
GO
Agora precisamos carregar alguns dados históricos na tabela para 2013, então quero alterar a função e o esquema para adicionar partições mensais para isso. Mas não consigo descobrir como fazer isso usando SPLIT? Cada exemplo e tutorial que vi mostra como adicionar novas partições no final de um intervalo, não dividir uma no meio.
Alguma sugestão por favor?
Você menciona a divisão no meio, mas seu requisito é adicionar um limite ao início (antes do primeiro limite existente). Conseqüentemente, nenhuma movimentação dispendiosa de dados será necessária, desde que nenhum valor existente seja menor ou igual a 20140100. Presumo que seja esse o caso aqui.
Como a primeira partição está no grupo de arquivos errado (PRIMARY), primeiro mova-a para o grupo de arquivos mensal apropriado:
Em seguida, crie as partições históricas necessárias antes de carregar os dados:
A prática recomendada geral é planejar de forma que apenas partições vazias sejam divididas. A movimentação de dados realizada durante
SPLIT
eMERGE
para limites alterados requer cerca de 4 vezes o registro como DML normal. Portanto, considere também criar uma partição vazia no grupo de arquivos adequado (mesmo que não haja arquivos) antecipando o carregamento de dados anteriores.