2011-09-08 93 views
3

我們將來自客戶的數據導入到中央服務器以進行報告。我們使用安裝在客戶端機器上的.net 2 windows服務,將從應用程序中提取的數據作爲XML發送到WCF服務。我們無法在客戶端的Windows服務上超過.Net 2。 我們將XML存儲在SQL服務器表XML列中。然後我們擦洗數據並將其插入到所需的表格中。SQL 2008 XML存儲

但是,xml使用的數據源的列名非常大。因此這使得XML非常糟糕。目前我們使用列名稱作爲節點名稱和列數據作爲節點值。這導致列名稱被用作開始和結束標記。 我們考慮過使用XML的屬性,但我們關心的是「在我們收到的數據中使用」。但是,專欄名稱還很大,這仍然造成了相當大的問題。因此,一個反彈的想法是使用別名作爲列名並使用XML的屬性。這應該顯着降低開銷。

我在想什麼是其他人正在做什麼來解決這些問題?關於這種事情,有沒有任何建議或最佳做法?

回答

0

我根本不會破壞XML。

SQL中的XML數據類型本質上已經存在一些(輕微)compression。然而,如果你絕對需要最小化數據(不用擔心它沒有第一次解壓就可以解密),那麼可以使用Zip或Lzh類型的算法來壓縮它,然後將它存儲在varbinary中 - this might help