Unicode-Komprimierungsimplementierung

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

SQL Server verwendet eine Implementierung des Standardkomprimierungsschemas für Unicode (SCSU)-Algorithmus, um Unicode-Werte zu komprimieren, die in Zeilen- oder Seitenkomprimierten Objekten gespeichert sind. Bei diesen komprimierten Objekten wird die Unicode-Komprimierung für nchar(n) und nvarchar(n) spalten automatisch verwendet. Das Datenbankmodul speichert Unicode-Daten unabhängig vom Gebietsschema als 2 Byte. Dies wird UCS-2-Codierung genannt. Bei einigen Gebietsschemas kann durch die Implementierung der SCSU-Komprimierung in SQL Server bis zu 50 Prozent des Speicherplatzes eingespart werden.

Unterstützte Datentypen

Unicode-Komprimierung unterstützt die Datentypen nchar(n) und nvarchar(n). Datenwerte, die außerhalb der Zeile oder in nvarchar(max)-Spalten gespeichert sind, werden nicht komprimiert.

Hinweis

Unicode-Komprimierung wird nicht für nvarchar(max) -Daten unterstützt, auch wenn sie in Zeile gespeichert wird. Dieser Datentyp kann immer noch jedoch von der Seitenkomprimierung profitieren.

Upgrade von früheren Versionen von SQL Server

Wenn ein Upgrade einer SQL Server-Datenbank auf SQL Server erfolgt, werden unicodekomprimierte Änderungen an keinem Datenbankobjekt, komprimierten oder nicht komprimierten Datenbankobjekt vorgenommen. Das Datenbankupgrade wirkt sich wie folgt auf Objekte aus:

  • Wenn das Objekt nicht komprimiert ist, werden keine Änderungen vorgenommen, und das Objekt funktioniert weiterhin wie zuvor.

  • Zeilen- oder seitenkomprimierte Objekte funktionieren wie bisher. Unkomprimierte Daten liegen in unkomprimierter Form vor, bis ihr Wert aktualisiert wird.

  • Neue Zeilen, die in eine zeilen- oder seitenkomprimierte Tabelle eingefügt werden, werden mittels Unicode-Komprimierung komprimiert.

    Hinweis

    Um die Vorteile der Unicode-Komprimierung vollständig zu nutzen, erstellen Sie das Objekt mit Seiten- oder Zeilenkomprimierung neu.

Auswirkungen der Unicode-Komprimierung auf die Datenspeicherung

Wenn ein Index erstellt wird oder neu erstellt wird oder wenn ein Wert in einer Tabelle geändert wird, die mit Zeilen- oder Seitenkomprimierung komprimiert wurde, wird der betroffene Index oder Wert nur dann komprimiert gespeichert, wenn die komprimierte Größe kleiner als die aktuelle Größe ist. Dies verhindert, dass Zeilen in einer Tabelle oder in einem Index aufgrund der Unicode-Komprimierung an Größe zunehmen.

Der Speicherplatz, der durch die Komprimierung eingespart wird, ist von den Eigenschaften der Daten abhängig, die komprimiert werden, und vom Gebietsschema der Daten. In der folgenden Tabelle werden die Speicherplatzeinsparungen aufgelistet, die für verschiedene Gebietsschemas erreicht werden können.

Gebietsschema Komprimierung in Prozent
Englisch 50 %
Deutsch 50 %
Hindi 50 %
Türkisch 48 %
Vietnamesisch 39 %
Japanisch 15 %

Nächste Schritte