Implementierung von Unicode-Komprimierung
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
SQL Server verwendet eine Implementierung des Algorithmus „Standardkomprimierungsschema für Unicode (SCSU)“, um Unicode-Werte zu komprimieren, die in zeilen- oder seitenkomprimierten Objekten gespeichert werden. Für diese komprimierten Objekte erfolgt die Unicode-Komprimierung für nchar(n)- und nvarchar(n)-Spalten automatisch. Datenbank-Engine speichert Unicode-Daten als 2 Bytes, unabhängig vom Gebietsschema. 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 den nchar(n)-Datentyp mit fester Länge und den nvarchar(n)-Datentyp. Datenwerte, die außerhalb von Zeilen oder in nvarchar(max) -Spalten gespeichert werden, 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.
Ein Upgrade von früheren Versionen von SQL Server
Wenn eine SQL Server-Datenbank auf SQL Server aktualisiert wird, werden keine Änderungen im Zusammenhang mit Unicode-Komprimierung für die Datenbankobjekte durchgeführt – unabhängig davon, ob diese komprimiert oder nicht komprimiert sind. Das Datenbankupgrade wirkt sich wie folgt auf Objekte aus:
Wenn das Objekt nicht komprimiert ist, werden keine Änderungen durchgeführt, und das Objekt funktioniert wie bisher.
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 in vollem Umfang zu nutzen, erstellen Sie das Objekt mit Seiten- oder Zeilenkomprimierung neu.
Auswirkungen der Unicode-Komprimierung auf Datenspeicher
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 |
---|---|
Deutsch | 50 % |
Deutsch | 50 % |
Hindi | 50 % |
Türkisch | 48 % |
Vietnamesisch | 39 % |
Japanisch | 15 % |