当前位置: 首页 > 知识库问答 >
问题:

Quarkus JPAHibernate统计显示在同一事务下使用的多个连接

潘星阑
2023-03-14

我有一个使用quarkus和hibernate访问postgresql数据库的项目。在做一些测试时,我发现每个请求的Hibernate统计数据报告每个请求使用了多个连接。我认为,在同一事务下执行的所有查询都将使用相同的物理连接,但我不确定现在是否正确。

我在这里提供了一个示例,如果您下载并执行测试,那么在哪里也会出现相同的行为。测试执行和endpoint,同一查询在一个事务中执行四次

基于这段代码:

2020-08-21 16:28:13,079 INFO  [org.hib.eng.int.StatisticalLoggingSessionEventListener] (executor-thread-1) Session Metrics {
    5371760 nanoseconds spent acquiring 4 JDBC connections;
    61585 nanoseconds spent releasing 4 JDBC connections;
    18094275 nanoseconds spent preparing 4 JDBC statements;
    19146452 nanoseconds spent executing 4 JDBC statements;
    0 nanoseconds spent executing 0 JDBC batches;
    0 nanoseconds spent performing 0 L2C puts;
    0 nanoseconds spent performing 0 L2C hits;
    0 nanoseconds spent performing 0 L2C misses;
    0 nanoseconds spent executing 0 flushes (flushing a total of 0 entities and 0 collections);
    0 nanoseconds spent executing 0 partial-flushes (flushing a total of 0 entities and 0 collections)
}

有人知道JDBC连接是指到数据库的物理连接还是实体管理器已经请求了四次到连接池的连接吗?.

谢谢。

共有1个答案

秦博延
2023-03-14

4次来自连接池的请求。您所做的每一个查询都可以在一个语句中完成,因此您可以将查询用作连接。

 类似资料:
  • 我正在计划一个设计,我将从同一个池中获得两个连接(plocal)。仅在一个连接上启动事务,而不在另一个连接上启动事务。我希望在同一过程中使用这两个数据库连接,并使用非事务连接进行模式调用,使用事务连接进行支持事务的记录级调用。这种方法有效吗?

  • 第一步:进入控制台页面,添加统计ID 第二步:填写网站信息 第三步:放置统计代码 [代码示例如下] <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>了不起的盖茨比</title> </head> <body> <p>1922年的春天。</p> <p>菲茨杰拉

  • 我有一个表订阅,我想在一个连接中用JOOQ编写多个selectCount,并用不同的谓词连接到数据库。为此,我创建了一个查询列表: 最后,我使用批处理启动了这个查询列表: 我原本希望在执行的返回值中包含上述查询的结果,但我得到了一个整数数组,其中填充了0个值。 这是使用JOOQ运行多个的正确方法吗?方法返回的整数数组的含义是什么? 我在JOOQ博客中查看了这个链接,讨论了“如何在一个查询中计算多个

  • 多显示器系统 返回上级 Windows 98和Windows NT 5.0可以支持在一个单独的系统中存在多个显示设备和显示器。多显示器架构(通常简称为“MultiMon”)使操作系统使用两个或多个显示设备和显示器来建立一个逻辑桌面成为可能。举例来说,在一个有两台显示器的系统中,用户可以在其中的任何一个显示器上显示他的应用程序,或者将窗口从一个窗口中拖到另一个窗口中。 这一章的内容包含了如何在一个多

  • 问题内容: 我正在运行一台正在监听的服务器,公开了2个服务:和。由于这两项服务都可以从访问,因此我只想从存根拨打该地址。 服务器看起来像这样: 为什么每种服务都需要拨不同的插座? 而且由于代码基本上是重复的,以适应每种服务,所以我不能只使用an 来减少代码吗? 然后使用它为每个服务实现客户端功能,而不是为每个服务创建新功能。我已经找到了cmux,但是必须有一种无需使用外部库即可执行此操作的方法。

  • 问题内容: 我是Spring的新手,我想知道是否可以在同一应用程序中使用多个事务管理器? 我有两个数据访问层-一个用于两个数据库。我想知道,你如何在一个层使用一个事务管理器,而在另一层使用另一个事务管理器。我不需要在两个数据库之间都执行事务。但是我确实需要分别在每个数据库上执行事务。我创建了一个图像来帮助概述我的问题: 这是我的应用程序上下文配置: 这是使用此配置的示例: 因此,对于帐户存储库,我