DB团队报告了ASYNC_NETWORK_IO问题以及一个大型但经过优化的查询,该查询在36Sec内执行,并带来了6,44,000行。
其背后的主要原因可能是以下原因之一:
A。客户端应用程序出现问题
B。网络问题–(但我们的以太网速度为1 GB)
因此,这可能是代码方面的问题,因为会话必须等待客户端应用程序处理从SQL Server接收的数据,才能向SQL Server发送信号,使其可以接受新数据进行处理。 这是一种常见情况,可能反映了不良的应用程序设计,并且最常见的原因是过多的ASYNC_NETWORK_IO等待类型值
这是我们如何从代码中从DB获取数据的方法。
try {
queue.setTickets(jdbcTemplate.query(sql, params, new QueueMapper()));
} catch (DataAccessException e) {
logger.error("get(QueueType queueType, long ticketId)", e);
}
有人可以建议我吗? 提前致谢。