> Tech > Surveiller l’insertion de nouvelles lignes

Surveiller l’insertion de nouvelles lignes

Tech - Par iTPro - Publié le 14 mars 2013
email

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.

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 gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 14 mars 2013