Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 173|Antwort: 0

[Tipps] SQL-Server-Datenbanktabellenzeilenkompression und Seitenkompression

[Link kopieren]
Veröffentlicht am 09.01.2026 11:20:06 | | | |
Anforderungen: In einer SQL-Server-Datenbank gibt es eine Tabelle (z. B. Log-Tabelle, Anfrage-Log-Tabelle), die einen sehr großen Speicherplatz einnimmt, vielleicht Hunderte von GB. Wie kann man den Tabellenspeicher reduzieren? Datenkompression (Speicherplatzsparung) kann für stark repetitive Texte (z. B. HTML, JSON, Logs) aktiviert werden.

ROW-Kompression

Kompression verändert die physische Speicherung der Daten, aber nicht die logische Struktur der Daten. Der Prozess der Linienkompression:

Identifizieren Sie den Datentyp jeder Spalte und konvertieren Sie ihn in eine variable Länge
Schließlich wird die Anzahl der Speicherplatzanfragen auf den tatsächlichen Bedarf reduziert
Nach der Kompression wird die Speichermenge auf jeder Seite erhöht
Nach der Kompression reduzieren Sie die Menge an Metadaten
Wenn zum Beispiel der Datentyp einer Spalte smallint ist, weist das System standardmäßig 2 Bytes zu.
In Wirklichkeit wird jedoch nur 1 Byte Speicherplatz verwendet, und wenn die Kompression in der Tabelle aktiviert ist, kann er bei Bedarf zugewiesen werden

PAGE-Kompression

Die Seitenkompression führt zusätzliche Operationen aus, um die Zeilenkompression zu verbessern
Hauptoperationen: Zeilenkompression, Präfixkompression, Wörterbuchkompression

CPU-Verbrauch: PAGE-Kompression > Zeilenkompression

Test

Erstellen Sie neue Users1- und Users2-Tabellen, beide fügen 100.000 Datenstücke ein, und das SQL-Skript ist wie folgt:
Um die Tabellenbelegung anzuzeigen, die alle 3,27 MB betragen, lautet der Befehl wie folgt:
Wie unten gezeigt:



Um den Kompressionsstatus der Users2-Tabelle anzuzeigen, lautet der Befehl wie folgt:
Wie unten gezeigt:



sp_estimate_data_compression_savingsSchätzen Sie die Einsparungen, die entstehen können, wenn Sie Tabellen oder Partitionen für Zeilen, Seiten, Spaltenspeicher, Spaltenspeicherarchive oder XML-Kompression aktivieren. Der Befehl lautet wie folgt:
Die Ausgabe ist wie folgt:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB)        sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
Users2 dbo 1 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Der Index nimmt mit den aktuellen Kompressionseinstellungen ≈ 3,29 MB ein.
size_with_requested_compression_setting (KB) 1296 KB Geschätzter Footprint ≈ 1,27 MB, wenn Sie die von Ihnen angeforderte neue Kompressionsmethode wie PAGE oder ROW aktivieren
Zur Ausführung der Seitenkompression lautet der Befehl wie folgt:
Vergleich der Effekte:Die Users2-Tabelle beträgt 3,27 MB vor der Kompression und 1,23 MB nach der Kompression, wie in der untenstehenden Abbildung dargestellt:



Die Visualisierung ist wie folgt:



Referenz:

Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.




Vorhergehend:Datenbank-Soft-Deletion (tombod) Felduniqueitätsproblem
Nächster:Windows Defender Credential Guard erlaubt nicht die Verwendung gespeicherter Zugangsdaten
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com