2009-04-15 13 views
0

Quick q, könnte ein dummer sein angesichts meiner (Mangel an) Erkenntnisse auf Google bisher.Komprimieren von Daten aus der Datenbank

Ich habe eine Datenbank. In dieser Datenbank befindet sich eine Tabelle mit einigen Daten. Die Daten sind ein großes BLOB, können aber nicht komprimiert werden (aus Gründen, die ich nicht kontrollieren kann).

Ich habe eine Anwendung, die mit dieser Datenbank redet. Ich möchte wirklich sicherstellen können, dass die Daten während des Transports komprimiert werden.

Wie ich es verstehe, würde der Datenbankanbieter behandeln Kompression usw.

Ist dies der Fall? Gibt es Einstellungen für gängige, sagen wir SQL Server, um die Komprimierung zu aktivieren?

Antwort

2

Für SQL Server habe ich this "connect" entry gefunden, aber nein: Ich glaube nicht, dass TDS derzeit komprimiert ist. Sie könnten (obwohl ich es nicht mag) SQL-CLR verwenden, um es in .NET-Code zu komprimieren, aber es könnte zu viel Overhead haben.

Ich weiß, es ist in diesem Fall keine Option (aus der Frage), aber es ist normalerweise vorzuziehen, BLOBs so zu speichern, wie Sie sie erhalten möchten. Wenn Sie sie komprimieren möchten, speichern Sie sie komprimiert. SQL ist kein gutes Werkzeug zum Manipulieren von binary; -p Eine solche Strategie bedeutet auch, dass Sie keine herstellerspezifischen Features verwenden - nur die Möglichkeit, ein undurchsichtiges BLOB zu speichern.

+0

Danke, leider kann ich die zugrunde liegenden Daten nicht ändern oder sonst würde ich! Also im Hinblick auf die SQL-CLR-Lösung würde ich einen GetMyData-Sproc erstellen, der es in einen .NET-Datentyp komprimieren würde? – Duncan

0

SQL Server 2008 ist die erste Version von SQL Server, die die Komprimierung von Sicherungen nativ unterstützt. Vor 2008 müssen Sie es mit Produkten von Drittanbietern tun.

1

Wenn Ihre Datenbankzugriffsebene keine Komprimierung bietet, können Sie eine VPN-Verbindung zwischen dem Datenbankserver und dem Anwendungshost einrichten. Die meisten ernsthaften VPN-Lösungen komprimieren Daten während der Übertragung. OpenVPN ist eine einfache und leicht einzurichtende Lösung für die schnelle Erstellung eines Tunnels. Daten werden während der Übertragung komprimiert. Wahrscheinlich ist es nicht so effizient wie eine native Komprimierung, aber es ist eine mögliche Lösung. Und du bekommst Verschlüsselung kostenlos eingeworfen :).