1

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

我设法阅读它,XmlReader但现在想将值添加到数据库中

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

XML 文件具有要添加到数据库中的新属性及其值。

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

谢谢..

4

4 回答 4

1

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

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

于 2012-06-01T13:15:12.580 回答
0

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

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

请参阅此 MSDN 主题

这种方法几乎肯定会比遍历 XML 并一次插入一行具有更高的性能。

于 2012-06-01T13:17:45.293 回答
0

您可以互操作 XmlBulkLoad。可能可以帮助你吗?

于 2012-06-01T14:29:47.750 回答
0

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

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

1) 声明@doc xml = '你的xml here' 声明@handler int

2) 执行 sp_xml_preparedocument @handler OUTPUT, @doc

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

于 2012-06-01T14:36:48.367 回答