Estou estudando partições de mesa e ainda tenho algumas coisas que não tenho certeza.
Criei uma função de partição que organiza os dados dos últimos três meses.
CREATE PARTITION FUNCTION PartitioningBy3meses (datetime)
AS RANGE LEFT FOR VALUES (getdate()-90, getdate()-1);
GO
Esquema:
CREATE PARTITION SCHEME PartitionByVejes
AS PARTITION PartitioningBy3meses
TO (datosmuyviejos, datosviejos, [PRIMARY]);
GO
Eu usei o assistente para particionar uma tabela existente e este é o código gerado para mim:
BEGIN TRANSACTION
ALTER TABLE [dbo].[factura] DROP CONSTRAINT [PK__factura__3213E83F22FEA7FF] WITH ( ONLINE = OFF )
ALTER TABLE [dbo].[factura] ADD PRIMARY KEY NONCLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
CREATE CLUSTERED INDEX [ClusteredIndex_on_PartitionByVejes_637678578300644842] ON [dbo].[factura]
(
[fecha]
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PartitionByVejes]([fecha])
DROP INDEX [ClusteredIndex_on_PartitionByVejes_637678578300644842] ON [dbo].[factura]
COMMIT TRANSACTION
GO
Dúvidas:
- O índice primário se tornou não clusterizado para distribuir os dados entre as partições?
- Por que o índice ClusteredIndex_on_PartitionByVejes_637678578300644842 foi criado e excluído?
- Os dados se movem sozinhos entre as partições com o passar do tempo ou tenho que fazer algo para fazê-los se mover?