Marklogic 如何在块中处理大量文档以避免扩展树缓存已满

Marklogic 如何在块中处理大量文档以避免扩展树缓存已满,marklogic,marklogic-7,Marklogic,Marklogic 7,我在MarkLogic中有一个实体,其中大约有98k+个文档(/someEntity/[ID].xml)存在,我有一种情况,我必须在所有这些文档中添加一些新标记 我准备了一个查询来添加子节点,然后尝试对接收扩展树缓存已满的实体运行。我将缓存内存增加到了很少的GIG,它可以正常工作,并且需要很长时间才能完成。还尝试了xdmp:clear-expanded-tree-cache(),但它也不起作用 任何指针都指示我们如何获取10k块中的URL并进行处理,这样它就不会占用内存,也不会在查询处理一段时间

我在MarkLogic中有一个实体,其中大约有98k+个文档(
/someEntity/[ID].xml
)存在,我有一种情况,我必须在所有这些文档中添加一些新标记

我准备了一个查询来添加子节点,然后尝试对接收扩展树缓存已满的实体运行。我将缓存内存增加到了很少的GIG,它可以正常工作,并且需要很长时间才能完成。还尝试了
xdmp:clear-expanded-tree-cache()
,但它也不起作用


任何指针都指示我们如何获取10k块中的URL并进行处理,这样它就不会占用内存,也不会在查询处理一段时间后抛出错误。

点击扩展树缓存听起来像是在某处保存完整的结果集,这听起来是不必要的。也许有一些方法可以让你的代码更智能,让它在结果中流动,并尽快忘记一些事情。经验法则是:不要为let语句分配完整的结果集

然而,有时只需批量完成工作就更容易了,正如迈克尔·加德纳(Michael Gardner)所说,这是一个很好的选择。它可以从外部控制MarkLogic上的负载,并在需要时降低速度

对于像这样的小任务,类似的东西可能也会起到作用,尽管它的速度很难控制


点击扩展树缓存听起来像是在某处保存完整的结果集,这听起来不必要。也许有一些方法可以让你的代码更智能,让它在结果中流动,并尽快忘记一些事情。经验法则是:不要为let语句分配完整的结果集

然而,有时只需批量完成工作就更容易了,正如迈克尔·加德纳(Michael Gardner)所说,这是一个很好的选择。它可以从外部控制MarkLogic上的负载,并在需要时降低速度

对于像这样的小任务,类似的东西可能也会起到作用,尽管它的速度很难控制


我的问题的解决方案在这个帖子下提到我的问题的解决方案在这个帖子下提到谢谢你的回复,我在一个帖子下得到了我的问题的解决方案,我发布了一个帖子作为问题的答案。谢谢你的回复,我在一个帖子下得到了我的问题的解决方案,我发布了一个帖子作为问题的答案。