我正在努力删除MarkLogic数据库中加载的大量文件。我要删除的目录中的文件数超过100,000。我通常使用以下两种方法来删除查询控制台中的文件。目录中的每个文件都被编入索引。
for $x in xdmp:directory("/English/","infinity")
return xdmp:document-delete(fn:document-uri($x))
和
xdmp:directory-delete("/English/")
当我执行上述任何一种方法时,我收到“超出时间限制”,这会破坏操作。
我的问题是
答案 0 :(得分:1)
您可以在应用服务器设置中更改时间限制。
我实际上更喜欢将多个任务生成为批量删除。您可以为此修改基本代码。
最后,请考虑Michael Blakeley的taskbot:为此目的轻松设置衍生任务的解决方案。
答案 1 :(得分:1)
如果你可以清除森林,那通常比删除大量文件更快。
否则xdmp:directory-delete
通常是更好的技术,但为了获得最佳性能,请确保满足以下条件:
directory-creation=manual
。如果满足这些条件,那么删除的瓶颈通常是锁定的,因此您可以考虑暂时关闭它。