2010-05-17 66 views
0

XML被用作我們的主要集成點之一。它一次由許多客戶端接收,但同時導入的客戶太多可能會讓我們的數據庫變慢。 有人必須解決這樣的問題。XML導入你會怎麼做?

我基本上使用VB解析數據並導入我想要的和不想要的。

有沒有更好的方法?

+0

你想存儲XML在XML數據類型的SQL Server 2005數據庫?或者爲了插入數據庫表而撕碎XML的內容? – 2010-05-17 23:35:35

+0

將內容從1個xml文件中導入到多個表中 – Rico 2010-05-24 19:41:05

回答

1

您是否考慮過創建SSIS package?您可以通過這種方式有效地從多種不同的源類型導入數據。

這裏是一個很好的起點:http://msdn.microsoft.com/en-us/library/ms188032(v=SQL.100).aspx

+0

會爲多個客戶端場景執行SSIS包工作。 xml文件可能有100個不同的位置... – Rico 2010-05-17 23:39:43

+0

如果這些文件具有相同的架構,並且它們位於可訪問的驅動器上,則不應該成爲問題。 – BradBrening 2010-05-17 23:45:06

0

沒有具體說明,很難說你的慢點在哪裏。你是在測量在你的應用程序中花費的時間?

我發現很多時候,一個大型數據集正在被不必要地物化,這會消耗內存並且會導致性能下降。如果您在開始解析數據之前收到XML輸入數據並將其存儲在XmlDocument中,則可能會發生這種情況。如果XmlDocument很大,這會殺了你。

如果可能,旨在通過用XmlReader讀取數據來遞增處理數據。一些數據集適用於這種方法:所需的處理不需要很多上下文,但在數據上線性進行。在這種情況下,您會看到將所有內容吸收到XmlDocument的巨大進步。但是,其他數據集的結構如此嚴密,以至於在繼續之前,您確實必須擁有核心中的所有內容。

同樣,很難說如果沒有理解輸入數據的結構如何有更好的方法。

+0

這很有趣我不知道關於xml文檔對象...... – Rico 2010-05-28 17:21:18