Planejo particionar minha tabela mensalmente ao longo de uma coluna de data e li em alguns lugares que é recomendado (na verdade, uma prática recomendada) manter partições vazias em ambas as "extremidades" do intervalo. https://techcommunity.microsoft.com/t5/premier-field-engineering/oops-i-forgot-to-leave-an-empty-sql-table-partition-how-can-i/ba-p/370563
Como uma abordagem ingênua, eu criaria minha função de partição assim:
CREATE PARTITION FUNCTION MyPf(DATE)
AS RANGE RIGHT FOR VALUES (
'1900-01-01',
'2019-10-01','2019-11-01',...,...,...,'2022-08-01',
'9999-12-31');
CREATE PARTITION SCHEME MyPs AS PARTITION MyPf
ALL TO (MySingleFileGroup)
Posso garantir que nenhum dado anterior a 2019-10-01 será inserido na tabela e pretendo manter as partições SPLIT assim que chegar a 2022-08-01 , e continuarei fazendo isso até 9999-12-31 . Eu também planejo regularmente TRUNCATE partições antigas e MERGE o intervalo de partições antigas.
Eu perdi alguma coisa óbvia em relação às melhores práticas com essa configuração? Meu único objetivo é poder dividir e mesclar sem mover os dados.
Obrigada!
Desde que nenhum dado existente se qualifique para o novo intervalo de limite de partição, nenhuma movimentação de dados é necessária para o
SPLIT
.Da mesma forma, a partição mesclada estará vazia devido ao anterior
TRUNCATE
, portanto, nenhuma linha precisará ser movida para acomodar os novos limites.