zoukankan      html  css  js  c++  java
  • sql server 如何排除 ASYNC_NETWORK_IO 或 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 等待类型故障?

     也可以查看一下 闲暇与有问题的时间点全局变量的值:select @@PACK_SENT

    限制结果集:限制从SQL Server获取的行数。很多应用程序设计者从整个表不使用Where从句过滤而获取数据,并在客户端过滤。这是非常错误的方式,应该在服务端过滤。

    如果需要从服务器获取大量的行,并且如果其他会话由于ASYNC_NETWORK_IO 或 NETWORK_IO正在阻塞,那么插入所有行到临时表,然后从临时表查询。

    检查客户端应用程序的性能:检查是否客户端或应用程序系统正经历着系统资源瓶颈。如果有系统资源瓶颈,应用程序将不能更快处理结果集。

    网络:检查SQL Server和客户端或应用程序系统之间的网络速度。如果网络很慢,应用程序不能更快获取结果。

    NOLOCK提示或快照隔离级别:检查是否你可以使用NOLOCK提示或快照隔离级别。

    本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1791419

  • 相关阅读:
    Running MYSQL 5.7 By Bash On Ubuntu On Windows:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
    MiniDao FreeMarker Cache 缓存问题
    Minidao FreeMarker 数组
    插入排序实例
    Binutils工具集中的一些比较常用的工具
    交叉编译工具简介
    TQ2440触摸屏
    对IIC总线时序的一点理解以及ACK和NACK(NAK)
    UART,SPI,IIC的一点理解
    linux中vi显示中文乱码的问题
  • 原文地址:https://www.cnblogs.com/gered/p/12697137.html
Copyright © 2011-2022 走看看