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

2023-12-15

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

然而,对于30-40名活跃玩家的小规模赛事,联盟平台在速度上有所落后。

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

对于每个玩家的回合,

  • 玩家可以输入一个整数,经过一系列(4个查询)条件检查后,它通过 JOOQ 插入/更新数据库
  • 然后为了获取整数的状态,它再次执行 3 个查询,这有效地转换为 3 个链接哈希图以更新游戏的状态。

现在,响应需要花费很长时间,玩家会发现性能问题。而Union Platform实际上声称可以轻松处理单次超过1000名活跃玩家。因此,这实际上意味着我的 JOOQ 查询中存在一些错误(我确实使用了很多 LEFT OUTER JOIN)。

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


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

调试级别

  • SQL语句
  • 前 5 条结果记录
  • 语句执行时间(该行为已在 jOOQ 3.10 中删除,请参阅https://github.com/jOOQ/jOOQ/issues/8786)

跟踪级别

  • 与DEBUG级别相同
  • 报表准备时间
  • 绑定值
  • 语句绑定时间

如果你把这会起作用log4j or slf4j与 jOOQ 一起在您的类路径上。更多详细信息记录在此博客文章

这是一个开始。您还可以使用类似的工具Yourkit 分析器 or JProfiler。显然,您应该考虑您的 Postgres 执行计划。这里有一些迹象表明Postgres 文档.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们如何分析 JOOQ 语句的速度 的相关文章

  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • Cassandra java驱动程序协议版本和连接限制不匹配

    我使用的java驱动程序版本 2 1 4卡桑德拉版本 dsc cassandra 2 1 10cql 的输出给出以下内容 cqlsh 5 0 1 Cassandra 2 1 10 CQL spec 3 2 1 Native protocol
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 匿名类上的 NotSerializedException

    我有一个用于过滤项目的界面 public interface KeyValFilter extends Serializable public static final long serialVersionUID 7069537470113
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 是否有适用于所有数据库的标准sql

    如下所示 不同数据库的语法有所不同 是否存在适用于所有数据库的标准方法 有没有什么工具可以将任意sql转换为任意sql SQL Server 2005 CREATE TABLE Table01 Field01 int primary key
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • 如何在selenium服务器上提供自定义功能?

    我知道可以通过某种方法获得一些硒功能 其中之一如下 driver getCapabilities getBrowserName 它返回浏览器名称的值 但如果它指的是一个可用的方法 如果我没有误解的话 这似乎与自定义功能有关 就像我的意思是
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • Java整数双除法混淆[重复]

    这个问题在这里已经有答案了 方案1 int sum 30 double avg sum 4 result is 7 0 not 7 5 VS 方案2 int sum 30 double avg sum 4 0 Prints lns 7 5
  • 使用 where 进行 select 语句时,HSQLDB 用户缺乏权限或未找到对象错误

    我的数据库使用 SQuirrel SQL 客户端版本 3 5 3 和 HSQLDB 我已经能够为其指定相应的驱动程序 内存中 并创建一个别名 我创建了一个表 CREATE TABLE ENTRY NAME VARCHAR 100 NOT N
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 替换后增量

    我自己已经有一个问题了 但我想扩展它后增量示例 https stackoverflow com questions 51308967 post increment with example char a D int b 5 System o
  • 将 Azure AD 高级自定义角色与 Spring Security 结合使用以进行基于角色的访问

    我创建了一个演示 Spring Boot 应用程序 我想在其中使用 AD 身份验证和授权 并使用 AD 和 Spring Security 查看 Azure 文档 我执行了以下操作 package com myapp contactdb c
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和
  • Eclipse 中 Spring MVC 模型对象的 (jsp /jstl) 视图中的代码辅助

    在 Spring MVC 中 当将对象放置在视图模型中时 如下所示 public String getUser Model model fetch user model addAttribute user user return viewN
  • hashcode 的默认实现为以相同方式构造的对象返回不同的值

    我在这里编写一个示例代码 public class Test private int i private int j public Test TODO Auto generated constructor stub public Test
  • Trie 数据结构 - Java [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有任何库或文档 链接提供了在 java 中实现 Trie 数据结构的更多信息 任何帮助都会很棒 Thanks 你可以阅读Java特里树

随机推荐

  • 在 WooCommerce 订单管理页面 (ACF) 中输出产品自定义字段

    对于 WooCommerce 我使用的是高级自定义字段插件跟踪我实际存储每个产品的位置 当收到订单时 我希望能够查看管理编辑订单页面并查看项目的存储位置 这样我就可以抓着它发货了 这是我想看到的图片 希望这是有道理的 我只想在 WordPr
  • NetworkStream 不支持查找操作

    我正在创建简单的代理服务器 但我遇到了一个奇怪的情况 我有以下代码 var clientRequestStream tcpClient GetStream var requestHeader clientRequestStream GetU
  • java在运行时生成类文件

    我需要在运行时生成类 每个类都映射到一个数据库表 此类是 ORM 中使用的模型类 当客户端指定要使用的数据库表时 我的应用程序检查是否存在相应的模型类 如果不存在 生成它 and load it用于使用和save it 这样下次我们就不需要
  • 在 Xcode 7.2 中添加 Font Awesome 时出现问题

    我正在尝试在我的 iPhone 应用程序中使用 FontAwesome 我已经安排好了一切 但每次我得到这个 question mark Image 我确信我已经在我的项目和 Plist 中正确添加了字体 这是我的项目设置 Step 1 在
  • 棉花糖循环导入

    我有两个彼此相关的对象 我希望能够通过相关属性来访问一个对象 E g A b relationship obj some property 如何在不创建循环导入的情况下执行此操作 lib py class Relationship obje
  • 显示小数点后两位,不四舍五入[重复]

    这个问题在这里已经有答案了 可能的重复 如何将数字格式化为只有两位小数 我已经到处寻找解决方案 假设我有一个带有如下数字的变量 price1 1597 price2 1497 85 有没有一个函数 当有偶数时 显示2位小数而不四舍五入 pr
  • 将可绘制对象添加到 CirclePageIndicator

    如何将图像添加到圆形页面指示器而不是添加颜色 我尝试添加图标页面指示器 但单击方法不起作用 但我可以添加图像 在circlepageIndicator onclick方法正在工作 但如何添加可绘制的图像到CIRCLEPAGE INDICAT
  • 如何使用 JsonArray 和 JsonObject 创建 Json

    我想创建一个 Json 结构 它实际上是 JsonObject 内的 JsonArray 简单的结构是 1 req ctrlId txt1 ctrlId txt2 2 req ctrlId txt1 val val1 ctrlId txt2
  • Firefox 中奇怪的 HTTP/2 HPACK 编码

    我正在开发服务器端 HTTP 2 实现并使用 Firefox 作为测试客户端 有时我会收到看起来由 FF 编码错误的请求 但在指责 FF 之前 我想先向您确认一下我是否正确解码了 HPACK 数据 以下是原始请求 按 Firefox 开发控
  • JavaFx:如何比较 GridPane 内动态创建的 TextField 的值?

    我正在使用 JavaFx 开发一个应用程序 其中我在 GridPane 内创建动态 TextFields 并且有一个按钮最初被禁用 如下所示 所以我想要的是 如果第 1 列 TextFields 值小于第 3 列 TextFields 值
  • Android:仅获取根布局的屏幕尺寸

    请让我正确地在这里 我想获取 onCreate 方法中活动 布局可用的空间的高度 宽度 以计算可以赋予子布局的高度 我可以使用以下方法获取屏幕尺寸 root LinearLayout findViewById R id mainroot M
  • 从 SSIS 脚本任务创建对自定义程序集的引用 - vb

    我正在寻找一种在 SSIS 脚本任务中创建 导入 Newtonsoft Json Linq 的方法 但这显然不像 SSIS 中的 管理 NuGet 包 那么简单 那么还有另一种方法可以解决这个问题吗 我找到了一个link在我看来这是一个可能
  • php 中的 cfhttp“POST”

    我有一个 ColdFusion 页面 它附加了带有表单变量的 URL 我正在尝试在 php 中复制此代码
  • 有没有办法丢弃 VoIP 推送通知呼叫请求?

    我正在实现一项对讲功能 根据规范 该功能应仅报告并允许一个呼叫 如果已经报告或应答 正在进行 则忽略任何呼叫请求 最简单的做法是忽略后续呼叫的 VoIP 推送通知消息 但 Apple 不允许这样做 因为如果通知后没有呼叫CXProvider
  • 我创建了一个对象的副本,但是当我更新它时,它会更新原始对象

    首先 我有两个这样的模型 class Task final int id final String title final List
  • 以编程方式设置 Windows 屏幕键盘的数字布局

    现在 我正在尝试以编程方式切换 Windows 8 1 屏幕键盘 也称为 虚拟键盘 或 软输入面板 SIP 的数字布局 这不是我可以设置 InputScope 的 WPF 解决方案 但我在 Windows 8 1 平板电脑上使用 JavaF
  • 如何使用已经存在的构造函数?

    我正在使用 Firebase 为儿童构建一个简单的应用程序 但我不断收到此错误 Android Firebase Database exception not define a no argument constructor 我有一个 Ac
  • 为什么 char** (或任何 T**) 到 void** 强制转换无效?

    在第一条评论中Python C 模块 Malloc 在特定版本的 Python 中失败 user694733 提到铸造char to void 无效 我读从 Foo 到 void 的转换无效 为什么允许隐式类型转换为 void 但不允许为
  • 如何使用 XML Serializer 将多个 xml 命名空间应用到同一个类

    我正在尝试使用 WCF 生成一个代理类 该代理类在序列化时会将下面的类的实例转换为下面的 XML 但是 当我尝试将命名空间应用于类时 它们插入不正确 或者根本没有插入 我究竟做错了什么 我怎样才能解决这个问题 提前谢谢了 班级结构 XmlR
  • 我们如何分析 JOOQ 语句的速度

    我已经使用 Union Platform 实现了 JOOQ 作为基于 java 的游戏服务器 并使用 Union Platform 的 Orbiter Micro Union JS 客户端 在浏览器上运行它 然而 对于30 40名活跃玩家的