> Uncategorized > Surveiller l’insertion de nouvelles lignes

Surveiller l’insertion de nouvelles lignes

Uncategorized - Par iTPro - Publié le 14 mars 2013

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 Machine learning et Big Data pour bien démarrer

Guide Machine learning et Big Data pour bien démarrer

Les technologies de Machine Learning, Big Data et intelligence artificielle ne sont pas réservées aux géants du Web. Cependant, il est souvent difficile de savoir ce qu'elles peuvent nous apporter. Découvrez, dans ce guide, les différents types d'apprentissages et passez à l'action grâce aux outils open source disponibles dans la « Intel Python Distribution ».

Uncategorized - Par iTPro - Publié le 14 mars 2013