德比的子查询优化问题



下面是我之前关于Derby的问题。我终于让它显示了我查询的执行计划,有趣的值出现了:http://pastebin.com/wQAicPAV (SO解析器疯了,所以我需要使用外部存储)

正如您所看到的,一些优化器的成本非常大,并且也估计行数。优化器估计行数:333734973.00优化器估计成本:205150563.85完全错误的价值观。执行查询需要22分钟。

我看到了这个问题:https://issues.apache.org/jira/browse/derby - 1905

这表明大多数时候优化器只是试图为这个查询找到最佳计划,而执行本身持续的时间明显更短。

所以我的问题是——如何避免这种情况?配置derby可能是?优化器提示?为那个贪婪的混蛋优化器设置超时?

我在参考资料中找不到任何关于它的内容,我根本没有derby的经验。

根据我的收集,你只能通过重写查询来避免这种情况,因为优化器对这种查询"行为不佳"-有时使用join或从查询的某些部分创建视图并在查询中使用它们会有所帮助。

一些一般性的性能建议(不确定您是否已经尝试过):

  • 确保当前统计
  • 增加数据页缓存的大小
  • 使用in-memory-DB

最新更新