java - 由于 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);
}
谁能给我建议?提前致谢。
解决方案
推荐阅读
- selenium - Java selenium - 无法从日历弹出窗口中选择日期
- ruby-on-rails - 具有组和平均值的 ActiveRecord 查询
- solr - Solr 禁用同义词和停用词
- asp.net-mvc - 使用 DataContextClass 添加 View 和不添加 View 有什么区别?
- java - progressDialoge 未更新
- rest - 从 Keycloak 中的 REST API 中提取角色
- apache-camel - 如何检查 Camel 消息正文是否基于流?
- java - 如何通过 AnnotationProcessor 访问 TypeUse 注释
- javascript - 如何在 oncomplete 中检查两个以上的条件
- python - 错误:预期的序列或类似数组,得到
"