BaseX - XQuery - 将结果写入 CSV 文件时内存不足

问题描述

我正在尝试将 XQuery 结果写入 CSV 文件,请参阅附加代码(导致至少 160 万行,可能会变得更多..)。 然而,程序在执行几分钟后失败,并出现“主内存不足”错误。我使用的是 4GB 内存的笔记本电脑。我原以为写入文件可以防止内存瓶颈。另外,我已经在使用 copynode-false pragma。

我可能以错误的方式处理代码,因为这是我的第一个 XQuery/BaseX 程序。或者这可能在没有额外硬件的情况下无法解决..(当前数据库大小:3092 MB;节点:142477344)任何帮助将不胜感激!

let $params := 
<output:serialization-parameters xmlns:output="http://www.w3.org/2010/xslt-xquery-serialization">
  <output:method value="csv"/>
  <output:csv value="header=yes,separator=semicolon"/>
</output:serialization-parameters>

return file:write(
  '/tmp/output.csv',(# db:copynode false #){<csv>{
    for $stand in //*:stand       
    return <record>{$stand//*:kenmerk}</record>
      (: {$stand//*:identificatieVanVerblijfsobject}
      {$stand//*:inOnderzoek}
      {$stand//*:documentdatum}
      {$stand//*:documentnummer} :)
  }</csv>},$params
)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)