通过快速读取标记将大型xml文件加载到数据库表

时间:2010-09-01 05:35:52

标签: xml sql-server-2005

我正在使用SQL server 2005加载XML数据。

目前我正在通过Sp将大型XML文件加载到表中它将整个XML转换为XML类型的sql变量并准备document.there在我读取我想要的标签之后然后插入到表变量中并最终在完成所有处理后将表变量中的所有处理记录插入到DB

中的实际表中

我在将XML加载到表中时遇到了两个问题

  1. 当文件大小超过1 GB时,会出现以下错误
  2.   

    Msg 7119,Level 16,State 1,Procedure   第1行的sp_xml_preparedocument   试图将LOB增加到最大值   允许的大小为2,147,483,647字节。   Msg 8179,Level 16,State 5,Procedure   第59行的GETXMLDATA找不到   句柄0的预备语句。

    1. 甚至文件大小都可以处理它花了这么长时间来处理服务器内存大小是4GB 插入72000条记录花了7个小时
    2. 快速加载的任何建议?

1 个答案:

答案 0 :(得分:1)

我认为你最好的选择是SQL Server CLR integration。这意味着您编写的stored procedurefunction不使用T-SQL,而是使用C#或VB.NET。

在这两种编程语言中,您可以使用更多选项来读取xml文件。您可以使用XmlTextReader对xml文件进行流式访问。这意味着您不必将整个文件加载到内存中。