... auf der kleinsten Platte. Selbst für große Datenbanken. Aber nur, wenn das DBMS über eine richtig starke Komprimierungsfunktion verfügt.
Das ist wahr für DB2 9. Das ist
nicht wahr für DBMS wie Oracle oder den SQL Server.
Nun konnte ich bisher nur spekulieren, um wie viel der Platzbedarf einer Tabelle mit der DB2 9 Kompression reduziert werden kann.
Laut IBM bis zu 70%,
gemäß CW zwischen 45% und 75%. Wie hoch die Einsparung tatsächlich werden kann, hängt natürlich vom Design und Inhalt der zu komprimierenden Tabelle ab.
Da dem so ist, habe ich mit meiner größten lokal gespeicherten Tabelle einen Test gefahren. Diese Tabelle belegt ca. 1 GB auf der Harddisk. Mit der Kompression liefert DB2 auch eine Erweiterung der "Inspect"-Funktion, die die mögliche Reduktion des Platzbedarfs einer Tabelle schätzt. Für meine Tabelle hat Inspect eine Einsparung von 77% vorhergesagt. Überraschend viel. Und tatsächlich:
Nach Kompression verminderte sich der Größe meiner Tabelle auf 21,3% der unkomprimierten Tabelle.
Das ist noch ein wenig mehr als alle Vorhersagen, die man so lesen konnte. Denn aufgrund ihres Designs ist meine Tabelle ein besonders gutes Opfer für die Venom-Kompression. So erzielt der zugrunde liegende Algorithmus bei einer großen Anzahl sich wiederholenden Leerstellen auch hohe Kompressionsraten.
Dies ist ein dem erfahrenen Dateikomprimierer bekanntes und gern genutztes Phänomen.
Was kann man durch die Komprimierung der Zeilen einer DB2-Tabelle gewinnen? Die Frage beantwortet "Inspect rowcompestimate". Das Verfahren ist zweischrittig: db2 inspect rowcompestimate table tabname results keep filename; db2inspf filename textfile.t
Aufgenommen: Dec 18, 20:54
... so geht's. Genau genommen ist das Thema: Die Zeilen einer Tabelle unter Verwendung eines Verzeichnisses komprimieren. Das von DB2 dazu verwendete Kompressionsverfahren namens "Venom" arbeitet dabei mit dem Lempel-Ziv-Algorithmus. Bevor eine Tabelle
Aufgenommen: Dec 19, 23:01
Überraschend und auch nicht überraschend. Gemeint ist hier der Zugriff auf zeilenkomprimierte DB2 9 Tabellen. Denn das Selektieren von Daten bedeutet eben nicht nur Lesen von Bits und Bytes von Platte oder aus dem Datenbank-Buffer, sondern auch noch
Aufgenommen: Dec 20, 23:17
Meine Tabelle zum Experimentieren mit der Venom-Komprimierung hat einige Design-Schwächen, die zu der überraschend hohen Kompressionsrate geführt haben. Die Unachtsamkeit beim der Definition des Tabellen-Layouts lag darin, dass die meisten Spalten a
Aufgenommen: Dec 25, 19:17