Situation
- Entrepôt de données sur Sql Server 2008 Enterprise
- Plus de 36 millions de lignes de tas (ne demandez pas), avec plus de 60 colonnes
- 750k ajoutés mensuellement
- Aucune clé primaire définie (j'en ai identifié une)
- Pas de compression
Ce que je pense faire (dans cet ordre)
- Ajouter une compression au niveau de la page
- Ajouter le PK
- Ajouter un certain nombre d'index non clusterisés
- Faites cela le plus rapidement possible
Question
- En fin de compte: dois-je ajouter le PK ou la compression de page en premier? (Est-ce que ça importe?)
- Si j'ajoute d'abord la compression à la table, des index hériteront-ils alors des paramètres de compression au niveau de la table? La réponse à cette question particulière est "Non, la compression n'est pas héritée", trouvée ici sur dba.stackexchange
Ce vers quoi je me penche en ce moment
-- 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
...
...
J'ai regardé ici (documentation de création PK) et ici (documentation ALTER TABLE) , mais je ne vois rien de définitif sur la question de savoir si les index héritent ou non des paramètres de compression de table. La réponse à cette question particulière est "Non, la compression n'est pas héritée", trouvée ici sur dba.stackexchange
la source