Situazione
- Data warehouse su SQL Server 2008 Enterprise
- 36+ milioni di file heap (non chiedere), con oltre 60 colonne
- 750k aggiunti mensilmente
- Nessuna chiave primaria definita (ora ne ho identificata una)
- Nessuna compressione
Cosa sto pensando di fare (in questo ordine)
- Aggiungi la compressione a livello di pagina
- Aggiungi il PK
- Aggiungi un numero di indici non cluster
- Fallo il più rapidamente possibile
Domanda
- In definitiva: devo aggiungere prima il PK o la compressione della pagina? (Importa?)
- Se aggiungo prima la compressione alla tabella, gli indici erediteranno quindi le impostazioni di compressione a livello di tabella? La risposta a questa particolare domanda è "No, la compressione non è ereditata", disponibile qui su dba.stackexchange
A cosa mi sto sporgendo in questo momento
-- Add page level compression
alter table dbo.TableName
rebuild with (data_compression = page)
;
go
-- Add primary key
alter table dbo.TableName
add constraint PK_TableName
primary key clustered (<Columns>)
;
go
-- Add NC_IXs here
...
...
Ho guardato qui (documentazione sulla creazione di PK) e qui (documentazione ALTER TABLE) , ma non riesco a vedere nulla di definitivo sul fatto che gli indici ereditino o meno le impostazioni di compressione della tabella. La risposta a questa particolare domanda è "No, la compressione non è ereditata", disponibile qui su dba.stackexchange