簡體   English   中英

使用C#將大型XML文件處理到SQL Server中

[英]Processing Large XML file into SQL Server with C#

首先,我在這里描述的只是已經存在的較大ETL過程的一小部分。 因此,請不要建議移植到SSIS或其他環境,因為我做不到。

在此ETL過程中,對於要插入的SQL Server數據庫中的每個表,我是:

  1. 將所有相關的xml加載到XElement對象中
  2. 然后將xml轉換為類型化的數據集數據表
  3. 然后使用SqlBulkCopy對象將數據快速插入sql服務器表中。

但是,對於一個表,當我創建XElement時,會出現OutOfMemory異常。

因此,我現在需要迭代處理數據塊,但是我不確定執行此操作的最佳方法。 xml文件存儲在運行ETL進程的同一台計算機上。

謝謝你的幫助。

更新

我開始閱讀有關XmlReader類的信息,我從未使用過。 如果有人認為這是答案,請這樣說並提供任何指導。

不要使用XmlElement使用基於.NET SAX的解析器來解析XML流。 永遠不要實現內存中的對象。 簡單。 有一個API。

基本上,使用XmlTextReader

除了簡單地使用XmlReader之外,了解方法XNode.ReadFrom可能會很有用。 如果XML更像是一長串實體而不是深度嵌套的層次結構,則效果特別好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM