我有大型XML文件,最大4到5 GB。讀取大型XML文件並將數據插入數據庫
我管理與XmlReader
讀它,但現在要添加值到數據庫
我用簡單的插入查詢,添加值到數據庫,並卡住了,它需要2個多小時插入值存入2 GB文件的數據庫中。有沒有其他方法可以更有效地將XML文件中的值添加到數據庫中?
XML文件具有屬性,它們的值也是新添加到數據庫中的。
我正在使用SQL Server 2008和.NET。
謝謝..
我有大型XML文件,最大4到5 GB。讀取大型XML文件並將數據插入數據庫
我管理與XmlReader
讀它,但現在要添加值到數據庫
我用簡單的插入查詢,添加值到數據庫,並卡住了,它需要2個多小時插入值存入2 GB文件的數據庫中。有沒有其他方法可以更有效地將XML文件中的值添加到數據庫中?
XML文件具有屬性,它們的值也是新添加到數據庫中的。
我正在使用SQL Server 2008和.NET。
謝謝..
這聽起來像一個 「批處理」 式操作。考慮採取不同的方法:
請參閱this MSDN topic。
這種方法幾乎肯定會比迭代XML並一次插入一行更高的性能。
BCP通常是最快的方式...
您可以互換XmlBulkLoad。可能是this可以幫到你嗎?
如果您直接從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')
你建議他將2GB的xml粘貼到第1行嗎? – paul
您是否爲每個插入的所有插入或連接創建一個連接? – igofed
所有插入的一個conncetion .. – Smack