Saya memiliki tabel tumpukan yang membutuhkan sekitar 104 GB ruang disk dengan hampir 3 miliar baris. Saya mencoba membuat indeks berkerumun di tabel ini di WeekEndingDate
kolom [ ]. Saya memiliki sekitar 200 gb gratis di file data dan sekitar 280 gb gratis di tempdb.
Saya telah mencoba dua metode berbeda. Pertama adalah membuat indeks langsung di atas meja dengan perintah berikut:
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)
Saya mencoba keduanya dengan SORT_IN_TEMPDB = ON
dan OFF
. Saat menggunakannya ON
mengisi tempdb dan dengan OFF
itu mengisi drive data.
Metode lain adalah membuat tabel kosong baru dengan indeks yang diperlukan dan kemudian memasukkan catatan dari tumpukan ke tabel baru. Ini gagal juga setelah mengisi drive data.
Ada saran lain tentang apa yang harus dilakukan. Kebanyakan hal yang saya baca menyatakan bahwa saya akan membutuhkan sekitar 1,2 kali ukuran tabel untuk digunakan sebagai ruang kerja saat membuat indeks. Saya punya cara lebih dari itu dan masih gagal. Setiap saran akan dihargai.
Berikut adalah struktur tabel tumpukan asli saya:
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
? Jika berhasil, Anda bisa mengompres sesudahnya.