Eu tenho uma tabela de heap que ocupa cerca de 104 GB de espaço em disco com quase 3 bilhões de linhas. Estou tentando criar um índice em cluster nesta tabela na WeekEndingDate
coluna [ ]. Eu tenho cerca de 200 GB grátis no arquivo de dados e cerca de 280 GB grátis no tempdb.
Eu tentei dois métodos diferentes. Primeiro foi criar o índice diretamente na tabela com o seguinte 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)
Eu tentei tanto com SORT_IN_TEMPDB = ON
e OFF
. Ao usá- ON
lo, preencheu o tempdb e, com OFF
ele, a unidade de dados.
Outro método era criar uma nova tabela em branco com o índice necessário e, em seguida, inserir os registros do heap na nova tabela. Isso também falhou após o preenchimento da unidade de dados.
Qualquer outra sugestão sobre o que fazer. A maioria das coisas que li afirmou que precisaria de 1,2 vezes o tamanho da tabela para ser usada como espaço de trabalho ao criar o índice. Eu tenho muito mais do que isso e ainda falha. Todas as sugestões serão apreciadas.
Aqui está minha estrutura de tabela de heap 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
? Se isso funcionar, você poderá comprimir depois.