mssql sqlserver 由于服务器内存不足,无法创建XML文档。使用sp_xml_removedocument释放XML文档


摘要:
下文讲述今天使用openquery处理xml文档时,出现内存不足的情况,如下所示:
实验环境:sqlserver 2008 R2



错误信息如下所示:

System.Web.HttpUnhandledException(0x80004005):抛出了类型为“System.Web.HttpUnhandledException”的异常。 – > HRMS.Runtime.Remoting.RemoteServerException:远程服务器生成异常。
< Error >
< Description >无法创建XML文档,因为服务器内存不足。使用sp_xml_removedocument释放XML文档。< / Description >
< / Error >


处理方法:
由于对xml数据处理时,openxml无法扩展,当数据量小于4G时,一切使用正常,当数据量超过4G时,就会出现内存不足的异常提示,
我们只能将处理xml数据的方法采用XQuery的方法对节点值进行查询操作,来跳过OpenXML函数对内存的限制。

备注事项:
无论数据库服务器内存多大,msxml解析器(Msxmlsq.dll)最大可使用内存不会超过4G。