Java 我们如何分析JOOQ语句的速度

Java 我们如何分析JOOQ语句的速度,java,sql,performance,postgresql,jooq,Java,Sql,Performance,Postgresql,Jooq,我已经用Union Platform实现了JOOQ,作为一个基于java的游戏服务器,并使用Union Platform的Orbiter Micro(Union JS客户端)在浏览器上运行它 然而,由于比赛中有30-40名活跃的小玩家,联盟平台在速度上落后 对于每个游戏实例(即每个房间),我配置了一个工厂连接来执行所有查询。它的作用是 轮到每个玩家时 播放器可以输入一个整数,经过一系列(4次查询)的条件检查后,通过JOOQ插入/更新db 然后,为了返回整数的状态,它再次执行3个查询,这些查询有

我已经用Union Platform实现了JOOQ,作为一个基于java的游戏服务器,并使用Union Platform的Orbiter Micro(Union JS客户端)在浏览器上运行它

然而,由于比赛中有30-40名活跃的小玩家,联盟平台在速度上落后

对于每个游戏实例(即每个房间),我配置了一个工厂连接来执行所有查询。它的作用是

轮到每个玩家时

  • 播放器可以输入一个整数,经过一系列(4次查询)的条件检查后,通过JOOQ插入/更新db
  • 然后,为了返回整数的状态,它再次执行3个查询,这些查询有效地转换为3个链接的hashmap,用于更新游戏状态
现在,响应时间太长了,玩家们都看到了性能问题。而Union Platform实际上声称一个实例可以轻松处理1000多名活跃玩家。因此,这实际上意味着我的JOOQ查询中存在一些错误(我确实使用了很多左外部联接)


因此,任何提高吞吐量和分析每个查询的建议都是非常受欢迎的。

对我来说,这听起来像是正常的SQL调优问题(或者几个不同的问题)。考虑到jOOQ允许您执行实际的SQL,并且在没有正确的索引和约束的情况下使用
外部连接时可能会出现很多错误,因此问题可能出在SQL本身。当您打开调试/跟踪日志记录时,jOOQ将向日志输出输出几条信息,包括

调试级别
  • SQL语句
  • 前5项成绩记录
  • 语句执行时间
跟踪级别
  • 与调试级别相同
  • 报表编制时间
  • 绑定值
  • 语句绑定时间
如果您将或与jOOQ一起放在类路径上,这将起作用。更多细节记录在本文件中


这是一个开始。您也可以使用类似或的工具。显然,你应该考虑你的执行计划。这里有一些关于这方面的指示。

感谢卢卡斯的指导。我会查出来的嘿,卢卡斯,我仍然无法找到在哪里设置JOOQ的日志信息。是在jooq.properties中吗???@Shekhar:我已经更新了答案。正如blog和jOOQ手册中所述,您可以使用log4j或slf4j作为应用程序的日志库