为什么在MarkLogic中启用CPF的数据库中文档插入速度较慢?

时间:2014-12-01 17:43:29

标签: marklogic

我有一台MarkLogic 7服务器,我正在尝试插入文档。

  1. 当我在没有安装CPF的数据库中插入 10000 文档时,它需要 2.18 秒,如下所示:Document Insertion with no CPF

  2. 现在,我在数据库 local-db 上安装了CPF,启用转换为false: Install CPF with enable conversion false

  3. 在此之后,我将默认域范围设置为集合任务,然后插入 10000 文档。现在需要 3分35秒 Document insertion with CPF

  4. 任何人都可以帮我理解为什么文件插入需要这么长时间?

    有没有可以优化的选项?

3 个答案:

答案 0 :(得分:3)

CPF通过一系列预提交和提交后触发器来完成,从而为系统增加额外的负载。转换本身将在提交后触发器中发生。

您可能尝试的一件事是较小批次的提交。如果你每次进行10次10​​00个文件的交易,它会改变时间吗?如果是这样,您可以尝试批量调整以获得最佳性能。

答案 1 :(得分:3)

另请注意,CPF的设计并不快,但功能强大。 CPF建立在触发器之上,它将导致为每个文档执行多个触发器。它跟踪文档属性中的状态,因此它还会创建其他数据库片段。所有这一切导致它能够在重新启动后继续存在,这对于你需要进行大量处理而特别有用,你需要确保它在没有自己动手的情况下完成。

如果您希望尽可能快地摄取数据(包括变换),请考虑使用MLCP进行变换..

HTH!

答案 2 :(得分:1)

CPF触发器可能足以解释差异。但是还要检查你的操作系统,看看瓶颈是什么:可能是CPU或磁盘I / O.检查以确保您在交易过程中没有内存压力。如果操作系统正在分页,那将会影响性能。