我有一个运行 SELECT * 的编写不佳的应用程序,每隔几秒就会产生一个 2MB 的结果集。我无法纠正这个。不过,我很困惑,连接遇到 ASYNC_NETWORK_IO 等待。该应用程序在数据库服务器本地。
我已经验证了 dm_exec_connections 中的 session_id 是“共享内存”。client_net_address 是“本地机器”。
以前有人经历过吗?或者能够向我解释为什么会这样?
谢谢!
我有一个运行 SELECT * 的编写不佳的应用程序,每隔几秒就会产生一个 2MB 的结果集。我无法纠正这个。不过,我很困惑,连接遇到 ASYNC_NETWORK_IO 等待。该应用程序在数据库服务器本地。
我已经验证了 dm_exec_connections 中的 session_id 是“共享内存”。client_net_address 是“本地机器”。
以前有人经历过吗?或者能够向我解释为什么会这样?
谢谢!
当应用程序没有足够快地从 SQL Server 读取数据时,也会发生 ASYNC_NETWORK_IO。请注意,这不是 SQL Server 问题,而是应用程序问题。确保应用程序将数据作为一组而不是逐行读取。
即使应用程序是本地的,通信也会使用网络协议进行。因此,即使在本地机器上,较慢的数据传输仍将显示为 ASYNC_NETWORK_IO。