SQL Practice Blog – SQL Server, BizTalk und .NET Erfahrungen

SQL Server 2008 R2: Unicode Compression

leave a comment »

Als Teil meiner Serien “SQL Server 2008 R2 – Alles nur BI? möchte ich euch heute ein weiteres neues Features des SQL Servers 2008 R2 vorstellen. Die Unicodekomprimierung!

Die Datenkomprimierung gibt es im SQL Server schon seit der Version 2005. Seit dem SQL Server 2008 R2 ist nun auch möglich im Zuge der Datenkomprimierung die Komprimierung von Unicode durchzuführen. Aber was ist Unicode eigentlich? Betreibt man eine Website die unter mehreren Sprachen zur Verfügung bereit gestellt wird, unter anderem z.B. Japanisch, und die Inhalte aus dem SQL Server geladen werden, so bekommt man bei der Benutzung der Datentypen VARCHAR oder CHAR schnell Zeichenkonvertierungsprobleme.
Deshalb gibt es die Datentyp NVARCHAR bzw. NCHAR welche auch mit anderen Zeichen umgehen können, als der eingestellten Sprache des SQL Server.
Der Nachteil ist, das ein Zeichen in einer NVARCHAR oder NCHAR Spalte zwei Byte belegt. Speichert man das gleiche Zeichen in eine VARCHAR oder CHAR Spalte, so belegt ein Zeichen auch nur ein Byte.
Aus diesem Grund wurde die Unicodekomprimierung eingeführt um beim speichern von Zeichen, welche weniger Platz benötigen auch weniger Platz belegt wird.

Praktisch bedeutet das: Speichert man in ein Unicodefeld mit Unicodekomprimierung Zeichen des westlichen Alphabets, so spart man bis zu 50% des Platzes. Bei z.B. japanischen Zeichen spart man hingegen nur bis zu 15% Speicherplatz.

image Wie aktiviert man die Unicodekomprimierung nun? Ich erwähnte bereits das die Unicodekomprimierung an die Datenkomprimierung des SQL Servers gekoppelt ist. Um die Datenkomprimierung für eine Tabelle zu aktivieren klickt man mit der rechten Maustaste auf die jeweilige Tabelle und wählt den Menupunkt Storage aus und dann den Eintrag Manage Compressions …, worauf sich ein Wizard öffnet mit dem man die Komprimierungsart auswählen kann. Hier stehen ROW oder PAGE zur Auswahl, wobei die Unicodekomprimierung für beide Komprimierungsarten zur Verfügung steht. Des Weiteren kann man in dem Wizard bereits erkennen wie groß die voraussichtliche Ersparnis des Festplattenspeichers sein wird. So eine Komprimierung geht aber immer mit einer höheren CPU Last einher, welche bei vielen Schreibvorgängen um die 10% liegen liegen kann.

Das ganze funktioniert natürlich auf per T-SQL Befehl der wie folgt lautet:

image

Wie groß der Nutzen für jeden selbst ist, muss getestet werden. Bei sehr großen Tabellen / Datenbanken mit Inhalten in verschiedenen Sprachen, lohnt es sich jedenfalls darüber nachzudenken die Unicodekomprimierung einzuführen.

Written by Robert Meyer

Mai 12, 2010 um 10:04

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: