Tomcat / Java应用程序的数据库/查询优化器

时间:2013-06-06 14:33:27

标签: java database postgresql tomcat query-optimization

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

1 个答案:

答案 0 :(得分:3)

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

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

这些不会给你一个让事情变得更快的秘诀;你必须看看热点并且:

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

您还可以检查PostgreSQL日志:

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

它也可能有用:

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