【问题标题】:Creating lucene index for oracle db - performance为 oracle db 创建 lucene 索引 - 性能
【发布时间】:2019-02-13 17:26:32
【问题描述】:

将我的电脑换成相同硬件的电脑后,我重新安装了所有软件。 spring-boot 应用程序使用 hibernate-search 在启动时创建 lucene 索引。数据库(架构、索引等)和数据本身与旧设置相同。一切正常(应用程序等),除了现在创建索引需要更长的时间。之前每秒创建 75 个文档,但现在只有 7 个。我比较了数据库参数,它们是相同的。为了确保没有硬件问题,我使用了一个磁盘性能工具来比较电脑(新的速度有点快)。

性能大幅下降的原因可能是什么?我该如何解决?

【问题讨论】:

  • 您还能访问旧电脑吗?你可以尝试在一个全新的工作空间中构建和运行应用程序,看看你是否获得了与以前相同的性能?如果您不这样做,则您的工作区中可能有一些东西会改变设置。例如,在旧工作区中不那么冗长的覆盖记录器。如果您获得相同的性能,则可能与您的操作系统的配置方式或操作系统组件的版本、数据库的版本有关……您可以尝试在两种环境中通过 VisualVM 监控海量索引,看看是否有问题脱颖而出。
  • 另外,如果您当前正在通过 IDE 运行海量索引,请尝试在 IDE 之外进行。如果您使用同一 IDE 的不同版本,IDE 错误可能会解释差异。
  • 是的,我仍然可以使用旧电脑。我在 IDE(9 文档/秒)和命令行(10-11 文档/秒)的新电脑上尝试了它,在旧电脑(56 文档/秒)上同样如此,命令行再次比从IDE。我很确定瓶颈在某种程度上是数据库。但我不是数据库管理员,不知道在哪里看。版本和参数相同(oracle xe 11g)。下周将尝试进行更多测试。
  • 哦,我虽然你已经检查过了,因为你说数据库与旧设置相同。是的,不同配置的数据库很可能会导致这种性能下降。

标签: oracle lucene hibernate-search


【解决方案1】:

忘记更新这篇文章了。原因是太多急切的获取集合。创建索引时,所有表都是左外连接的。结果是一个巨大的查询。现在全部改成惰性获取,它运行得很好。

:$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-19
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 2012-07-26
    相关资源
    最近更新 更多