我们应用程序的数据库团队报告了异步网络IO问题,以及一个大而优化的查询,该查询在大约36秒内执行,并产生了大约644000行。
其背后的主要原因可能是:
A、 客户端应用程序有问题
B、 网络有问题(但我们有1 GB的以太网速度)
所以,这可能是一个代码方面的问题,因为
会话必须等待客户端应用程序处理从SQL Server接收到的数据,以便向SQL Server发送信号,表明它可以接受新的数据进行处理。
这是一个常见的场景,可能反映了糟糕的应用程序设计,并且是导致过多异步网络IO等待类型值的最常见原因
下面是我们如何从数据库中获取数据的代码。
try {
queue.setTickets(jdbcTemplate.query(sql, params, new QueueMapper()));
} catch (DataAccessException e) {
logger.error("get(QueueType queueType, long ticketId)", e);
}
有人能给我提个建议吗?
提前谢谢。