當前,我們的.NET應用程序在存儲器中構造了XML數據,我們堅持SQL Server數據庫。 XElement對象使用ToString()轉換爲字符串,然後存儲在數據庫中的varchar(MAX)列中。我們不想使用SQL XML數據類型,因爲我們不需要任何驗證,SQL在任何階段都不需要查詢XML。用於存儲在SQL Server數據庫中的XML的.NET壓縮
雖然這個實現工作正常,但我們希望通過在存儲XML之前壓縮XML來減小數據庫的大小,並在檢索它之後對其進行解壓縮。有沒有人有任何壓縮XElement對象的示例代碼(並且解壓縮也會很棒)?另外,我需要對數據庫列的數據類型進行哪些更改,以便充分利用此壓縮功能?
我再次調查了SQL Server 2005提供的XML數據類型,它提供的驗證開銷太高,我們無法考慮使用它。另外,雖然它在某種程度上壓縮了XML,但它並沒有.NET DeflateStream類那麼多。
我已經通過將我們使用的XML寫入磁盤測試了DeflateStream類,然後將壓縮版本保存爲新文件。結果非常好,一個16kb的文件下降到一個3kb的文件,所以這只是一個讓內存工作並將結果數據保存到數據庫的情況。有沒有人有任何示例代碼來做壓縮,並且我應該更改varcahr(MAX)colum鍵入可能varbinary?
在此先感謝
壓縮Xml對於性能來說也是一個好主意 - 這給了我們應用程序的一個很大的性能提升,它被大量的Xml寫入到數據庫中。 – Justin 2009-07-06 20:55:31