gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:43 25 4
gpt4 key购买 nike

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

但是,对于30-40个活跃玩家的小规模赛事,联盟平台在速度上显得有些滞后。

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

对于每个玩家的回合,

  • 播放器可以输入一个整数,在一系列(4 个查询)条件检查之后,它通过 JOOQ 插入/更新数据库
  • 然后为了取回整数的状态,它再次执行 3 个查询,这些查询有效地转换为 3 个链接的 HashMap 以更新游戏状态。

现在,响应花费了如此多的时间,以至于玩家看到了性能问题。而 Union Platform 实际上声称可以轻松处理超过 1000 个活跃玩家的实例。所以这实际上意味着我的 JOOQ 查询中存在一些错误(我确实使用了很多 LEFT OUTER JOIN)。

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

最佳答案

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

调试级别

微量水平

  • 与 DEBUG 级别相同
  • 声明准备时间
  • 绑定(bind)值
  • 声明绑定(bind)时间

如果你输入 log4j 就可以了或 slf4j在你的类路径上和 jOOQ 一起。此 blog post 中记录了更多详细信息

这是一个开始。您还可以使用类似 Yourkit Profiler 的工具或 JProfiler .显然,您应该考虑您的 Postgres 执行计划。在 Postgres documentation 中有一些关于此的指示。 .

关于java - 我们如何分析 JOOQ 语句的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com