Advertisement
Loading

Implémenter la Data Compression

Le travail d’analyse et de recherche terminé, nous avons la liste des objets (tables, index, vue indexée) à compresser.

ROW ou PAGE?

Il faut maintenant choisir le mode de compression à adopter pour chacun d’entre eux.. Pour cela, il faut jongler entre les critères précédemment retenus : le nombre de SELECT, et le nombre d’UPDATE car plus il y aura de SELECT et moins d’UPDATE, plus la compression PAGE sera indiquée. A l’inverse, moins il y aura de SELECT et plus d’UPDATE, plus la compression ROW sera quant à elle indiquée. Nous pouvons représenter ces contraintes comme suit : figure 2(voir Club Abonné).
 
Le tout est de savoir ou positionner le curseur, ce qui devra se faire au cas par cas.
Il est intéressant de noter que lorsque l’on active la compression de niveau PAGE sur un index, seul le niveau feuille recevra ce niveau de compression. Le ou les niveaux intermédiaires seront quant à eux compressés en ROW et ce pour des raisons de performance :

-    Les pages qui composent les niveaux intermédiaires sont peu nombreuses : le gain attendus en les compressant en PAGE serait minime

-    Ces pages sont très souvent mises à jour, les compresser en niveau PAGE irait à l’encontre des principes précédemment évoqués.

Mode opératoire

Tous les exemples qui suivent sont accompagnés d'illustrations que vous pouvez retrouver dans le numéro de décembre 2012 d'IT Pro Magazine, accessible depuis le Club Abonné.

La compression peut être implémentée graphiquement via la management studio, ou en Transact-SQL. Les assistants graphiques étant clairs et intuitifs, je ne m’étendrai pas sur le sujet et j’utiliserai les commandes transact-SQL dans les exemples à suivre.

Le principe de base est le suivant : pour activer la compression sur un objet donné, il faut procéder à sa reconstruction, en précisant le niveau de compression souhaité : NONE, ROW ou PAGE. Comme il s’agit effectivement de reconstruire un objet, l’opération peut se révéler extrêmement couteuse en temps et en ressource. Il faudra donc s’assurer dans un premier que le moteur dispose de suffisamment  de ressource pour mener à bien l’opération (on veillera en particulier à ce qu’il y ait suffisamment d’espace dans la base de données, dans le journal de transaction et dans la tempdb).

Ces précautions prises, voyons cela concrètement, au travers d’exemples. Nous contrôlerons l’état de la compression à chaque étape. Je rappelle que la compression peut s’activer au niveau d’une partition, nous trouvons donc l’information du type de compression appliqué dans la dmv sys.partitions. La commande suivante nous donnera l’état de la compression pour chaque partition (s’il y en a plusieurs) de chaque index de notre table exemple, ainsi que le nombre de pages utilisé par l’objet : figure 3.

SELECT
    object_name(SP.object_id) AS 'Table',
    SI.name AS 'Index', Si.type_desc ,
    SP.partition_number,data_compression_desc,
    SU.total_pages,
    SU.total_pages*8/1024 TailleMB
FROM sys.indexes SI
INNER JOIN sys.partitions SP
INNER JOIN sys.allocation_units SU ON SU.container_id = SP.hobt_id
ON SI.object_id = SP.object_id AND SI.index_id = SP.index_id
WHERE object_name(SP.object_id) = 'Catalog'
ORDER BY [table], [Index], partition_number

Exemple 1 : compression PAGE sur un HEAP

Reprenons notre table catalog déjà mentionnée dans cet article. Nous avons préalablement supprimé son Index Cluster, pour répondre au présent test. Voici sa composition initiale : figure 4.

Nous voyons qu’aucun index n’est compressé au départ. En effet, rien n’avait été précisé au moment de la création de la table, le comportement par défaut étant de ne pas activer la compression.

Pour compresser le HEAP, nous allons lancer sa reconstruction en précisant un niveau de compression PAGE, car nous l’avons vu précédemment, le type ROW offrait un taux de compression trop faible pour être réellement intéressant: figure 5.

Nous avons maintenant le niveau de compression suivant : figure 6.

Nous voyons que le HEAP est maintenant compressé au niveau page, et que sa taille est passée de  4189MB  à 2506MB

Continuons et compressons les deux index non cluster : figure 7.

Et nous obtenons maintenant : figure 8.

Finalement, la taille totale de la table (data + index) est passée de 5143MB à 2831MB.

À noter que lorsque l’on active la compression sur le HEAP et qu’il est donc reconstruit, les index non cluster le sont également, en interne, mais sans toutefois hériter du niveau de compression. Cela est dû au fait que la reconstruction du heap provoque le changement de ses RIDs, qui sont référencés dans les index non cluster, nécessitant ainsi leur reconstruction. Dans notre exemple, les index non cluster sont donc reconstruit deux fois, une première fois en interne par le rebuild du HEAP pour mettre à jour les RIDs, une seconde fois manuellement afin de leur appliquer le niveau compression souhaité. Il n’est malheureusement pas possible de reconstruire le HEAP et ces index en une seule fois tout en activant le niveau de compression souhaité.

Une alternative cependant consisterait à créer un index cluster avec le mode de compression désiré, puis en le reconstruisant à l’aide du mot clé ALL (voir exemple ci-dessous) avant de le supprimer. Le heap résultant ainsi que tous les index non cluster conserverai alors le niveau de compression. Selon les cas, cette méthode peut s’avérer plus rapide suivant les cas (nombre d’index non cluster et volumétrie de la table).

Exemple 2 : compression PAGE sur un Index CLUSTER

Il s’agit dans ce cas de reconstruire l’index cluster, en lui appliquant le paramètre de compression souhaité. Si tous les index non cluster doivent également être compressés avec le même niveau de compression que l’index cluster, il est possible de tout reconstruire en une fois, à l’aide du mot clé ALL : figure 9.

Lancement de la compression de tous les index simultanément : figure 10.

Voici ce que l’on obtient : figure 11.

Tous les index ont bien été reconstruits, et bénéficient maintenant du niveau de compression PAGE.

Exemple 3 : Compression PAGE / ROW sur partition

Nous allons maintenant tester la compression au niveau partition. Nous avons préalablement partitionné notre table catalog pour obtenir le résultat suivant : figure 12.

Nous allons maintenant activer la compression page sur les objets au niveau de la partition 1, la compression ROW sur la partition 2 tout en laissant les partitions 3 et 4 non compressées : figure 13.

Nous obtenons ainsi le résultat suivant : figure 14.

Attention néanmoins à certains problèmes de performances qui peuvent se produire lorsque l’on active différents niveaux de compression sur les partitions d’une table. Je vous invite à prendre connaissance de la KB suivante pour en savoir plus.

12345
Olivier Maître Olivier Maître - Administrateur de base de données
Olivier Maître est certifié MCITP SQL server database administrator et MCTS SQL Server Database Development.
 
Sur iTPro.fr, nous vous aidons à tirer le meilleur profit de vos environnements IT. Découvrez les analyses, les chroniques et plus de 4280 dossiers experts , profitez d’un savoir technologique unique et de ressources stratégiques exclusives pour vous accompagner dans le choix, la gestion et l’optimisation de vos environnements IT Professionnels. Bénéficiez d’une richesse éditoriale incomparable et vivez toute l’actualité IT professionnelle sur twitter avec #iTProFR
 
Enjeux de l’authentification forte pour la sécurité du SI ?Enjeux de l’authentification forte pour la sécurité du SI ?La mobilité, la consumérisation et le BYOD impliquent de nouveaux défis de sécurité pour les directions IT. Découvrez comment sécuriser les accès aux applications et aux données quelles que soient les situations de mobilité des collaborateurs.Découvrez le livre blanc

Ressources Informatiques

Comment répondre aux défis de la compromission d’identité ? La mobilité, la consumérisation et le BYOD impliquent de nouveaux défis de sécurité pour les directions IT. Découvrez comment sécuriser les accès…
   RSA | 4 pages
Découvrez le livre blanc
Les enjeux de l’authentification forte pour la sécurité du SI La mobilité, la consumérisation et le BYOD impliquent de nouveaux défis de sécurité pour les directions IT. Découvrez comment sécuriser les accès…
   RSA | 2 pages
Découvrez le livre blanc
SMART DSI : la nouvelle revue du décideur IT Conseil et expertise IT, bénéficiez des analyses, des chroniques et des dossiers de la nouvelle revue informatique SMART DSI pour conduire la transformation…
   SMART DSI | 52 pages
Découvrez la revue SMART DSI
Libérez le Big Data et le Machine Learning Nous sommes à la veille d'un changement spectaculaire où les machines seront capables de dépasser les êtres humains dans leur capacité à prendre…
   Comsoft | 12 pages
Découvrez l’article technique
BYOD : Guide des meilleures pratiques en entreprise Smartphones, tablettes, PC ultra-mobiles ont libéré les utilisateurs et transformé les interactions entre les collaborateurs. Encore faut-il que l’entre¬prise…
   HPE Aruba | 4 pages
Découvrez votre Guide de Stratégie Mobile
Optimiser la consommation énergétique du data center La gestion et la supervision des infrastructures IT n’ira qu’en s’aggravant tant que les entreprises n’adopteront pas une vraie gestion dynamique…
   Top 5 Décideur IT | 4 pages
Découvrez votre livre blanc
 

Informatique ProfessionnelleActualités, chroniques et dossiers IT experts

David Pekmez David Pekmez MVP Exchange Server

Patrick Guimonet Patrick Guimonet Spécialiste SharePoint

Patrick Thomas Patrick Thomas Formateur indépendant IBM i

Vidéos Informatiques

Comment mettre en place une stratégie mobile performante ?Smartphones, tablettes, PC ultra-mobiles ont libéré les utilisateurs et transformé…Par Itpro

Hyperconvergence réussie avec les solutions Dell VxRaill'hyperconvergence intéresse et séduit les DSI par son approche intégrée et…Par Itpro

Windows 10 Professionnel : 5 Innovations pour les CollaborateursRépondre aux enjeux de mobilité des utilisateurs est un besoin réel, centré…Par Itpro

Répondre aux défis de l'hyper convergence ?Découvrez en vidéo motion les 5 atouts majeurs du partenariat DELL EMC et Misco-inmac…Par Itpro

Les Assises de la Sécurité 2015 : Yves Rochereau - Check PointCheck Point est une société spécialisée dans l'univers de la sécurité informatique…Par Itpro

Conseil & Expertise IT

Bénéficiez des analyses, des chroniques et des dossiers
de la nouvelle revue informatique SMART DSI pour conduire
la transformation numérique de votre entreprise.

Abonnez-vous à la revue SMART DSI