Bitte erläutern Sie den Unterschied zwischen Zeilen- und Seitenkomprimierung

10

Ich versuche zu bestimmen, welche Anwendung angewendet werden soll und wann der geeignete Zeitpunkt für die Anwendung der Komprimierung ist. Ich poste diese Frage, um einen Einblick von dieser Community zu erhalten. Ich habe mehrere Artikel gelesen, wollte aber einen Ort haben, an dem dies in DB-Administratoren angesprochen wurde.

Gerald Patriowski
quelle

Antworten:

6

Dies ist eine gute Referenz und Erklärung für die Komprimierung von Zeile v Seite (kein Wortspiel beabsichtigt): http://blogs.lessthandot.com/index.php/datamgmt/dbprogramming/how-sql-server-data-compression/

Kurz gesagt, die Seitenkomprimierung umfasst die Algorithmen, die bei der Komprimierung auf Zeilenebene enthalten sind, und umfasst dann auch die Präfixkomprimierung und die Wörterbuchkomprimierung. Die Präfix- und Wörterbuchkomprimierung findet Muster in den Daten und ersetzt sie durch kleinere Werte. Während der Dekomprimierung wird der umgekehrte Vorgang ausgeführt und die Daten werden auf ihre ursprünglichen Werte zurückgesetzt.

Die Zeilenebene erleichtert Komprimierungsentscheidungen wie das Reduzieren von Metadaten und das Entfernen von nicht verwendetem Speicherplatz, wie z. B. den in einem CHAR (1000) gespeicherten Buchstaben 'Y'.

Der Artikel, auf den verwiesen wird, erklärt dies viel ausführlicher.

John
quelle
6

Um eine Entscheidung für eine Reihe von Tabellen zu treffen, können Sie die Prozedur " sp_estimate_data_compression_savings " ausführen :

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

Auf diese Weise können Sie die Einsparungen für die jeweilige Tabelle ermitteln.

Nach meiner Erfahrung funktioniert die PAGE-Komprimierung in den meisten Fällen besser.

Slava Murygin
quelle