等待分类与解决基本流程:
步骤1.定位问题
系统等待往往能直观的反映出系统问题。通过一些常见的等待类型,同样可以找到系统瓶颈,结合性能计数器往往定位更准确。
如:系统中存在大量IO类等待,那么可能表示你的磁盘或内存是语句运行缓慢的原因,也是系统的瓶颈所在。
常见的等待类型
CXPACKET : 当尝试同步查询处理器交换迭代器时出现。如果针对该等待类型的争用成为问题时,可以考虑降低并行度。
IO_COMPLETION : 在等待 I/O 操作完成时出现。通常,该等待类型表示非数据页 I/O。
PAGEIOLATCH_ : 在任务等待 I/O 请求中缓冲区的闩锁时发生。
PAGELATCH_ : 在任务等待不处于 I/O 请求中的缓冲区闩锁时发生。
LCK_ :等待闩锁时出现。
ASYNC_NETWORK_IO : 当任务被阻止在网络之后时出现在网络写入中。验证客户端是否正在处理来自服务器的数据。
OLEDB :当 SQL Server 调用 Microsoft SQL Native Client OLE DB 访问接口时出现。该等待类型不用于同步。而是用于指示调用 OLE DB 访问接口的持续时间
WRITELOG :等待日志刷新完成时出现。导致日志刷新的常见操作是检查点和事务提交。
步骤2.分析
问题与解决
CXPACKET
CXPACKET 这个等待可以简单理解成CPU相关的等待,主要发生在并行计划中。由于并行计划需要协同多个task同时工作,那么“协同”分配等等操作的时候出现的就是这个等待。