首页 > 解决方案 > 由于 ASYNC_NETWORK_IO 在 java 代码中出现 DB IO 问题

问题描述

我们应用程序的数据库团队报告了 ASYNC_NETWORK_IO 问题以及一个大型但优化的查询,该查询在大约 36 秒内执行并带来大约 6,44,000 行。

这背后的主要原因可能是其中之一:

A. 客户端应用程序的问题

B. 网络问题——(但我们的以太网速度为 1 GB)

因此,这可能是代码方面的问题,因为会话必须等待客户端应用程序处理从 SQL Server 接收到的数据,以便向 SQL Server 发送信号,表明它可以接受新数据进行处理。这是一个常见的场景,可能反映了糟糕的应用程序设计,并且是 ASYNC_NETWORK_IO 等待类型值过多的最常见原因

这就是我们如何从代码中的数据库获取数据。

try {
            queue.setTickets(jdbcTemplate.query(sql, params, new QueueMapper()));
        } catch (DataAccessException e) {
            logger.error("get(QueueType queueType, long ticketId)", e);
        }

谁能给我建议?提前致谢。

标签: javasql-serverasync-network-io

解决方案


推荐阅读