Une fois la compression en place sur nos tables et index, il est intéressant de se pencher sur l’état des nouvelles lignes insérées.
Surveiller l’insertion de nouvelles lignes
On pourrait légitimement imaginer qu’elles vont hériter du paramètre de compression de la table ou de l’index. Nous allons voir que ce n’est pas toujours le cas, lorsque la compression est de niveau PAGE.
En effet, dans tous les cas, si l’insertion de nouveaux enregistrements sur une page compressée en mode PAGE provoque un page split, le moteur va évaluer si l’activation de la compression PAGE sur ces nouveaux enregistrements pourrait permettre d’éviter ce page split. Si tel est le cas, la page est recompressée dans son ensemble (niveau PAGE donc) et le page split est annulé. Sinon, les enregistrements sont ajoutés à la page en étant simplement compressé en ROW, et le page split se produit.
Par ailleurs, les HEAP offrent en plus une particularité. Si des lignes sont ajoutées dans des pages d’un HEAP déjà compressées en niveau PAGE, elles hériteront effectivement du niveau de compression. En revanche, si l’ajout de ligne provoque la création de nouvelles pages, elles n’hériteront pas de la compression. Les lignes insérées seront compressées au niveau ROW et non pas au niveau page, sauf dans les deux cas suivants :
– Les données sont insérés en bloc (bulk) et les optimisations d’insertion en blocs sont activées
– Les données sont insérées à l’aide de la syntaxe INSERT INTO … WITH (TABLOCK)
Dans les autres cas, il faudra relancer un rebuild du HEAP via la commande ALTER TABLE … REBUILD WITH (DATA_COMPRESION=PAGE) pour que ces nouvelles lignes / pages soient compressées.
Conclusion
La compression s’avère très utile pour optimiser l’utilisation de l’espace disque. Le point important est d’arriver à bien cibler les objets à compresser, afin d’éviter tout impact négatif sur les performances. Dans un cas extrême, j’ai vu un traitement faisant des insertions massives de dizaines de milliers de lignes, en mode ligne à ligne avoir un temps d’exécution multiplier par 3 par la simple activation de la compression page !
On passera donc beaucoup de temps à analyser les objets candidats à la compression, son implémentation ne consistant finalement qu’en un simple rebuild.
Téléchargez cette ressource

Guide Pratique de téléphonie d’entreprise avec Teams
Ajouter un onglet téléphonie à Microsoft Teams pour émettre et recevoir des appels depuis n’importe quel terminal connecté. Découvrez dans ce guide pratique, comment bénéficier des avantages de l’offre TeamsPhony pour faire des économies, gagner en agilité et en simplicité avec une offre de téléphonie dans le cloud.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Euclyde Datacenters, un fort positionnement sur le marché des datacenters souverains
- Top 6 des Enjeux de la Sécurité du Cloud
- Le secret de la réussite industrielle ? De l’audace, de l’audace et encore de l’audace
- Les avantages de la norme WebAuthn
- L’urgence de faire converger Observabilité et Sécurité
