2012-06-01 177 views
1

我有大型XML文件,最大4到5 GB。讀取大型XML文件並將數據插入數據庫

我管理與XmlReader讀它,但現在要添加值到數據庫

我用簡單的插入查詢,添加值到數據庫,並卡住了,它需要2個多小時插入值存入2 GB文件的數據庫中。有沒有其他方法可以更有效地將XML文件中的值添加到數據庫中?

XML文件具有屬性,它們的值也是新添加到數據庫中的。

我正在使用SQL Server 2008和.NET。

謝謝..

+0

您是否爲每個插入的所有插入或連接創建一個連接? – igofed

+0

所有插入的一個conncetion .. – Smack

回答

0

這聽起來像一個 「批處理」 式操作。考慮採取不同的方法:

  1. 創建一個XSL轉換你的XML轉換成一個BULK INSERT語句
  2. 保存生成的SQL腳本文件或建立一個命令字符串
  3. 執行SQL腳本

請參閱this MSDN topic

這種方法幾乎肯定會比迭代XML並一次插入一行更高的性能。

0

您可以互換XmlBulkLoad。可能是this可以幫到你嗎?

0

如果您直接從SQL Server讀取XML文件,您將得到更快的響應。

它是一種3步驟的過程,簡化看起來像:

1)聲明@doc XML = '您的XML這裏' 聲明@handler詮釋

2)EXEC sp_xml_preparedocument中@handler OUTPUT,@doc

3)select * from OPENXML(@handler,'/ ROOT/Path/To/Data')

+0

你建議他將2GB的xml粘貼到第1行嗎? – paul

相關問題