重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
ASYNC_NETWORK_IO 或 NETWORK_IO
翻译自:https://mssqlwiki.com/sqlwiki/sql-performance/async_network_io-or-network_io/
什么是 ASYNC_NETWORK_IO 或 NETWORK_IO ?
当查询执行时,SQL Server处理结果,并将它放到输出缓存,发送给客户端或应用程序。
客户端或应用程序然后从输出缓存获取结果,处理数据,并发送确认信息给SQL Server。如果客户端或应用程序花了很长时间发送确认信息,那么SQL Server在处理额外结果之前等待 ASYNC_NETWORK_IO(SQL Server 2005/2008) 或 NETWORK_IO(SQL Server 2000)。
这个等待类型的影响:
1.SQL Server将不会释放被查询持有的锁,除非客户端收到确认信息。这可能导致阻塞。
2.查询持续时间增加,因此查询会很慢。
如何排除 ASYNC_NETWORK_IO 或 NETWORK_IO 等待类型故障?
限制结果集:限制从SQL Server获取的行数。很多应用程序设计者从整个表不使用Where从句过滤而获取数据,并在客户端过滤。这是非常错误的方式,应该在服务端过滤。
如果需要从服务器获取大量的行,并且如果其他会话由于ASYNC_NETWORK_IO 或 NETWORK_IO正在阻塞,那么插入所有行到临时表,然后从临时表查询。
检查客户端应用程序的性能:检查是否客户端或应用程序系统正经历着系统资源瓶颈。如果有系统资源瓶颈,应用程序将不能更快处理结果集。
网络:检查SQL Server和客户端或应用程序系统之间的网络速度。如果网络很慢,应用程序不能更快获取结果。
NOLOCK提示或快照隔离级别:检查是否你可以使用NOLOCK提示或快照隔离级别。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。