.NET-Komprimierung von XML zum Speichern in der SQL Server-Datenbank

Gegenwärtig erstellt unsere .NET-Anwendung XML-Daten im Speicher, die in einer SQL Server-Datenbank gespeichert bleiben. Das XElement-Objekt wird mit ToString () in einen String konvertiert und dann in einer varchar (MAX) -Spalte in der DB gespeichert. Wir möchten den SQL XML-Datentyp nicht verwenden, da wir keine Validierung benötigen und SQL das XML zu keinem Zeitpunkt abfragen muss.

Obwohl diese Implementierung problemlos funktioniert, möchten wir die Größe der Datenbank reduzieren, indem wir die XML-Datei vor dem Speichern komprimieren und nach dem Abrufen dekomprimieren. Hat jemand Beispielcode zum Komprimieren eines XElement-Objekts (und Dekomprimieren wäre auch toll)? Welche Änderungen müsste ich auch am Datentyp der Datenbankspalte vornehmen, damit wir diese Komprimierung voll ausnutzen können?

Ich habe den XML-Datentyp, den SQL Server 2005 bietet, erneut untersucht, und der Validierungsaufwand ist zu hoch, als dass wir ihn in Betracht ziehen könnten. Auch wenn es das XML etwas komprimiert, ist es nicht so stark komprimiert wie die .NET DeflateStream-Klasse.

Ich habe die DeflateStream-Klasse getestet, indem wir das von uns verwendete XML auf die Festplatte geschrieben und dann die komprimierte Version als neue Datei gespeichert haben. Die Ergebnisse sind großartig. Eine 16-KB-Datei wird zu einer 3-KB-Datei. Es ist also nur ein Fall, dass dies im Speicher funktioniert und die resultierenden Daten in der Datenbank gespeichert werden. Hat jemand einen Beispielcode, um die Komprimierung durchzuführen, und sollte ich die varcahr (MAX) -Spalte so ändern, dass sie möglicherweise in varbinary geändert wird?

Danke im Voraus

Antworten auf die Frage(4)

Ihre Antwort auf die Frage