Veuillez expliquer la différence entre la compression des lignes et des pages

10

J'essaie de déterminer lequel appliquer et quel est le moment approprié pour appliquer la compression. Je poste cette question pour avoir un aperçu de cette communauté. J'ai lu plusieurs articles, mais je voulais avoir un endroit où cela abordé dans les administrateurs de base de données.

Gerald Patriowski
la source

Réponses:

6

Il s'agit d'une bonne référence et explication pour la compression de la page v (sans jeu de mots): http://blogs.lessthandot.com/index.php/datamgmt/dbprogramming/how-sql-server-data-compression/

En bref cependant, la compression de page englobe les algorithmes contenus dans la compression de niveau ligne et couvre également la compression de préfixe et la compression de dictionnaire. La compression de préfixe et de dictionnaire trouve des modèles dans les données et les remplace par des valeurs plus petites. Pendant la décompression, il fera l'inverse et restaurera les données à leurs valeurs d'origine.

Le niveau de ligne facilite les décisions de compression, comme la réduction des métadonnées et la suppression de l'espace inutilisé, comme la lettre «Y» stockée dans un CHAR (1000).

L'article référencé explique cela plus en détail.

John
la source
6

Afin de prendre une décision pour un groupe de tables, vous pouvez exécuter la procédure " sp_estimate_data_compression_savings ":

exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,ROW;
exec sys.sp_estimate_data_compression_savings  @Schema,@Table,NULL,NULL,PAGE;

Cela vous aidera à déterminer les économies pour chaque table particulière.

D'après mon expérience, la compression de PAGE fonctionne mieux dans la plupart des cas.

Slava Murygin
la source