Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过快速读取标记将大型xml文件加载到数据库表中_Xml_Sql Server 2005 - Fatal编程技术网

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

通过快速读取标记将大型xml文件加载到数据库表中,xml,sql-server-2005,Xml,Sql Server 2005,我正在使用SQLServer2005加载XML数据 目前,我正在通过Sp将大型XML文件加载到表中,它将整个XML加载到XML类型的sql变量并准备文档。在那里,我读取了所需的标记,然后插入到表变量中,最后在完成所有处理后,将表变量到数据库中实际表的所有处理记录插入 在将XML加载到表中时,我遇到了两个问题 当文件大小超过1 GB时,会出现以下错误 Msg 7119,16级,状态1,程序 sp_xml_准备文件,第1行 试图使LOB增长超过最大值 允许的大小为2147483647字节。 Msg

我正在使用SQLServer2005加载XML数据

目前,我正在通过Sp将大型XML文件加载到表中,它将整个XML加载到XML类型的sql变量并准备文档。在那里,我读取了所需的标记,然后插入到表变量中,最后在完成所有处理后,将表变量到数据库中实际表的所有处理记录插入

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

  • 当文件大小超过1 GB时,会出现以下错误
  • Msg 7119,16级,状态1,程序 sp_xml_准备文件,第1行 试图使LOB增长超过最大值 允许的大小为2147483647字节。 Msg 8179,16级,状态5,程序 GETXMLDATA,第59行找不到 已准备好句柄为0的语句

  • 即使文件大小可以处理,处理服务器内存大小也是4GB,需要很长时间 插入72000条记录花了7个小时

  • 对快速加载有什么建议吗?

    我认为您最好的选择是查看。这意味着您可以使用C#或VB.NET编写一个或多个脚本,而不是使用T-SQL

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