读取大型XML文件并将数据插入数据库

时间:2012-06-01 13:11:34

标签: c# .net sql-server-2008 xml-parsing

我有大量的XML文件,最多4到5 GB。

我设法用XmlReader读取它,但现在想要将值添加到数据库

我使用简单的插入查询将值添加到数据库并卡住,将值插入数据库2 GB文件需要2个多小时。是否有其他方法可以更有效地将XML文件中的值添加到数据库中?

XML文件具有属性,它们的值也是新的,可以添加到数据库中。

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

谢谢..

4 个答案:

答案 0 :(得分:1)

bcp通常是最快的方式......

http://msdn.microsoft.com/en-us/library/ms191184.aspx

答案 1 :(得分:0)

这听起来像是“批量”式操作。考虑采取不同的方法:

  1. 创建一个将xml转换为BULK INSERT语句的xsl转换
  2. 将生成的sql脚本保存到文件或构建命令字符串
  3. 执行sql脚本
  4. this MSDN topic

    这种方法几乎肯定会比迭代XML并一次插入一行更高。

答案 2 :(得分:0)

您可以互操作XmlBulkLoad。可以this可以帮到你吗?

答案 3 :(得分:0)

如果直接从SQL Server读取XML文件,您将获得更快的响应。

它是一个3步骤的过程,简化如下:

1)声明@doc xml ='你的xml在这里'    声明@handler int

2)EXEC sp_xml_preparedocument @handler OUTPUT,@ doc

3)从OPENXML中选择*(@ handle,'/ ROOT / Path / To / Data')