【问题标题】:Database/query optimizer for Tomcat/Java applicationTomcat/Java 应用程序的数据库/查询优化器
【发布时间】:2013-06-02 15:01:41
【问题描述】:

任何人都可以推荐该软件来分析/优化 Java/Tomcat 应用程序中的现有查询。大约 70% 的查询是由 Hibernate 生成的。数据库是 PostgreSQL 但我想使用通用解决方案,而不是针对特定数据库

【问题讨论】:

  • 停止使用 Hibernate 是优化 SQL 查询的最佳方式。
  • 如果 Hibernate 可以进一步优化它生成的 SQL 查询,它会的。如果其他产品可以做到这一点,那么 Hibernate 没有理由不这样做。

标签: java database postgresql tomcat query-optimization


【解决方案1】:

这没有什么神奇的产品,没有“让我的查询更快”。

可以做的是使用像Hibernate Profiler 这样的分析工具来跟踪您的数据库活动。 Hibernate 的内置日志记录也很有用。详情请参阅how to measure hibernate performance?

这些不会给你一个让事情变得更快的秘诀;您必须查看热点,然后:

  • 看看是否可以通过缓存或更智能的逻辑找到降低查询率的方法;
  • 更有效地重新制定 HQL 或条件查询
  • 在必要时在本机 SQL 中重写错误的 HQL 或条件查询
  • 添加索引(添加索引的更新成本不超过读取的好处);等

您还可以检查 PostgreSQL 日志:

  • 启用详细日志记录(log_statement = 'all'log_min_duration_statement = 0
  • 安装和使用 pgbadger 获取日志报告
  • 阅读日志报告
  • 看看是否可以根据“热门”查询和表格改进应用中的查询模式

它还可以用于:

  • 安装auto_explain 模块并启用它
  • 检查慢查询的查询计划
  • 确定它们来自您的应用程序的位,看看您是否可以更有效地重新构造查询,在适当的地方缓存,或在增加的写入成本不超过读取加速的好处的情况下添加索引。李>

【讨论】:

  • 谢谢。请看stackoverflow.com/questions/16993107/…。我无法让 pgfouine 工作。 pgbadger 和 auto_explain 可以替代 pgfouine。 Hibernate 配置文件可以与非休眠查询一起使用吗?
  • @anarinsky Pgbadger 是 PgFouine 的更新和改进版本。至于休眠配置文件,我真的怀疑它是否可以处理不通过休眠的查询。
  • @anarinsky 另外,你为什么要问我,但不回答丹尼尔在你链接到的帖子上的问题?我们不只是为了好玩而要求提供更多信息。
  • 你说得对,我刚在丹尼尔之前看到你的回复,谢谢
猜你喜欢
  • 2013-06-26
  • 2017-11-15
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 2019-03-30
  • 2017-01-11
  • 1970-01-01
相关资源
最近更新 更多