有人能推荐这个软件来分析/优化java/tomcat应用程序中现有的查询吗。大约70%的查询是由hibernate生成的。数据库是postgresql,但我想使用通用的解决方案,而不是一个特定的数据库
zed5wv101#
没有什么神奇的产品,没有“让我的查询更快”。您可以使用像hibernate profiler这样的分析工具来跟踪数据库活动。hibernate的内置日志也很有用。了解如何度量hibernate性能吗?更多细节。这些不会给你一个让事情进展更快的方法;您必须查看热点并:看看是否可以通过缓存或更智能的逻辑找到降低查询速率的方法;更有效地重新格式化hql或criteria查询必要时重写本机sql中错误的hql或criteria查询添加索引(添加索引的更新成本不超过将其用于读取的好处);等。您还可以检查postgresql日志:启用详细日志记录( log_statement = 'all' , log_min_duration_statement = 0 )安装并使用pgbadger获取日志报告阅读日志报告看看是否可以基于“热门”查询和表改进应用程序中的查询模式它还可以用于:安装 auto_explain 模块并启用它检查慢速查询的查询计划找出你的应用程序中它们的来源,看看你是否可以更有效地重新格式化查询,在适当的地方缓存,或者在增加的写入成本不超过读取速度的好处的地方添加索引。
log_statement = 'all'
log_min_duration_statement = 0
auto_explain
1条答案
按热度按时间zed5wv101#
没有什么神奇的产品,没有“让我的查询更快”。
您可以使用像hibernate profiler这样的分析工具来跟踪数据库活动。hibernate的内置日志也很有用。了解如何度量hibernate性能吗?更多细节。
这些不会给你一个让事情进展更快的方法;您必须查看热点并:
看看是否可以通过缓存或更智能的逻辑找到降低查询速率的方法;
更有效地重新格式化hql或criteria查询
必要时重写本机sql中错误的hql或criteria查询
添加索引(添加索引的更新成本不超过将其用于读取的好处);等。
您还可以检查postgresql日志:
启用详细日志记录(
log_statement = 'all'
,log_min_duration_statement = 0
)安装并使用pgbadger获取日志报告
阅读日志报告
看看是否可以基于“热门”查询和表改进应用程序中的查询模式
它还可以用于:
安装
auto_explain
模块并启用它检查慢速查询的查询计划
找出你的应用程序中它们的来源,看看你是否可以更有效地重新格式化查询,在适当的地方缓存,或者在增加的写入成本不超过读取速度的好处的地方添加索引。