代码之家  ›  专栏  ›  技术社区  ›  NoNaMe

由于异步网络IO,java代码中出现DB IO问题

  •  1
  • NoNaMe  · 技术社区  · 6 年前

    我们应用程序的数据库团队报告了异步网络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);
            }
    

    有人能给我提个建议吗? 提前谢谢。

    0 回复  |  直到 6 年前