2009-04-15 143 views
0

快速q,可能是一個愚蠢的,因爲我迄今在Google上沒有發現。壓縮來自數據庫的數據

我有一個數據庫。在這個數據庫中是一個包含一些數據的表。數據是一個大的BLOB,但不能被壓縮(出於我的控制原因)。

我有一個應用程序與此數據庫交談。我真的希望能夠確保數據在傳輸過程中被壓縮。

據我所知,數據庫提供商將處理壓縮等。

這是這種情況嗎?是否有常見的設置,比如SQL Server啓用壓縮?

回答

2

對於SQL Server,我發現this "connect" entry,但沒有:我不認爲TDS目前是壓縮的。你可以(雖然我不喜歡它)使用SQL-CLR在.NET代碼中壓縮它,但它可能有太多的開銷。

我知道在這種情況下(從問題)它不是一個選項,但通常最好按照您想要的方式存儲BLOB。所以如果你想讓它們壓縮,將它們壓縮存儲。 SQL不是用於操作二進制文件的好工具; -p這種策略也意味着您沒有使用特定於供應商的功能 - 只是存儲不透明BLOB的能力。

+0

謝謝,不幸的是我不能改變底層數據,否則我會!因此,就SQL-CLR解決方案而言,我會創建一個GetMyData sproc,將其壓縮爲.NET數據類型? – Duncan 2009-04-15 15:10:44

0

SQL Server 2008是本機支持備份壓縮的SQL Server的第一個版本。在2008年之前,你需要用第三方產品做到這一點。

1

如果您的數據庫訪問層不提供壓縮功能,則可以在數據庫服務器和應用程序主機之間設置VPN鏈接。最嚴重的VPN解決方案可以壓縮傳輸中的數據OpenVPN是用於快速創建隧道的簡單且易於設置的解決方案。數據在傳輸過程中被壓縮。可能不會像原生壓縮那樣高效,但它是一種可能的解決方案。你可以免費得到加密:)。