Tengo una tabla de almacenamiento dinámico que ocupa alrededor de 104 GB de espacio en disco con casi 3 mil millones de filas. Estoy tratando de crear un índice agrupado en esta tabla en la WeekEndingDate
columna [ ]. Tengo alrededor de 200 gb's gratis en el archivo de datos y alrededor de 280 gb's gratis en el tempdb.
He intentado dos métodos diferentes. Primero fue crear el índice directamente en la tabla con el siguiente comando:
CREATE CLUSTERED INDEX CX_WT_FOLD_HISTORY
ON WT_FOLD_HISTORY (WeekEndingDate ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = ON,
IGNORE_DUP_KEY = OFF
, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON,
DATA_COMPRESSION = PAGE)
Lo intenté con SORT_IN_TEMPDB = ON
y OFF
. Al usarlo ON
, llenaba el tempdb y con OFF
él llenaba la unidad de datos.
Otro método era crear una nueva tabla en blanco con el índice necesario y luego insertar los registros del montón en la nueva tabla. Esto también falló después de llenar la unidad de datos.
Cualquier otra sugerencia sobre qué hacer. La mayoría de las cosas que he leído indican que necesitaría aproximadamente 1,2 veces el tamaño de la tabla para usarla como espacio de trabajo al crear el índice. Tengo mucho más que eso y todavía falla. Cualquier sugerencia sera apreciada.
Aquí está mi estructura de tabla de montón original:
CREATE TABLE [dbo].[WT_FOLD_HISTORY](
[WeekEndingDate] [varchar](50) NULL,
[Division] [varchar](50) NULL,
[Store] [varchar](50) NULL,
[SKUNumber] [varchar](50) NULL,
[UPC] [varchar](50) NULL,
[SalesUnits] [varchar](50) NULL,
[SalesCost] [varchar](50) NULL,
[SalesRetail] [varchar](50) NULL,
[InventoryUnits] [varchar](50) NULL,
[InventoryCost] [varchar](50) NULL,
[InventoryRetail] [varchar](50) NULL,
[OnOrderUnits] [varchar](50) NULL,
[OnOrderCost] [varchar](50) NULL,
[OnOrderRetail] [varchar](50) NULL,
[ReceiptUnits] [varchar](50) NULL,
[ReceiptCost] [varchar](50) NULL,
[ReceiptRetail] [varchar](50) NULL,
[PermanentMarkdowns] [varchar](50) NULL,
[ReturnsToVendor] [varchar](50) NULL,
[POSMarkdowns] [varchar](50) NULL,
[TimeFK] [smallint] NULL,
[LocationFK] [int] NULL,
[ItemFK] [int] NULL
) ON [AcademySports_DataFG1]
DATA_COMPRESSION=NONE
? Si eso funciona, podría comprimir después.