我有一台MarkLogic 7服务器,我正在尝试插入文档。
当我在没有安装CPF的数据库中插入 10000 文档时,它需要 2.18 秒,如下所示:
现在,我在数据库 local-db 上安装了CPF,启用转换为false:
在此之后,我将默认域范围设置为集合任务,然后插入 10000 文档。现在需要 3分35秒
任何人都可以帮我理解为什么文件插入需要这么长时间?
有没有可以优化的选项?
答案 0 :(得分:3)
CPF通过一系列预提交和提交后触发器来完成,从而为系统增加额外的负载。转换本身将在提交后触发器中发生。
您可能尝试的一件事是较小批次的提交。如果你每次进行10次1000个文件的交易,它会改变时间吗?如果是这样,您可以尝试批量调整以获得最佳性能。
答案 1 :(得分:3)
另请注意,CPF的设计并不快,但功能强大。 CPF建立在触发器之上,它将导致为每个文档执行多个触发器。它跟踪文档属性中的状态,因此它还会创建其他数据库片段。所有这一切导致它能够在重新启动后继续存在,这对于你需要进行大量处理而特别有用,你需要确保它在没有自己动手的情况下完成。
如果您希望尽可能快地摄取数据(包括变换),请考虑使用MLCP进行变换..
HTH!
答案 2 :(得分:1)
CPF触发器可能足以解释差异。但是还要检查你的操作系统,看看瓶颈是什么:可能是CPU或磁盘I / O.检查以确保您在交易过程中没有内存压力。如果操作系统正在分页,那将会影响性能。