问题描述
我正在尝试将 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 (将#修改为@)