整理SQL Server中经常出现的等待类型。

一,CXCONSUMER

CXCONSUMER: Occurs with parallel query plans when a consumer thread waits for a producer thread to send rows. This is a normal part of parallel query execution.

CXCONSUMER等待最简单解释是:有并发的查询计划在运行,通常可以被忽略,该等待类型从SQL Server 2017 RTM CU4时开始正式使用。之前的CXPACKET 等待被拆分成良性(benign )和可操作(actionable)的等待两种,CXCONSUMER 用于表示 良性的CXPACKET,而 CXPACKET 用于表示 可操作性的CXPACKET。

对于一些并发查询计划来说,使用多线程来执行查询,有些子线程会产生数据,称作生产者线程,有些线程来消耗数据,称作消费者线程。虽然生产者线程和消费者线程都会注册CXPACKET等待,但是消费者线程注册的CXPACKET等待是不可操作的,这是因为生产者线程注册的CXPACKET 等待导致消费者线程必须等待,而生产者线程是可以操作的。通过拆分消费者等待,应该减少CXPACKET等待的数量,并对剩余的等待事件进行调查。

通过单独把消费者的CXPACKET 等待拆分成 CXCONSUMER等待,来区分并发等待的类型。当出现CXPACKET等待,表示生产者线程出现性能问题,消费者线程等待生产者线程提供数据;当偶尔出现CXCONSUMER等待时,通常可以被忽略,但是,当经常出现CXCONSUMER等待时,就表示消费者线程出现性能问题,消费者进程无法及时把数据处理完成。

参考文档:

CXCONSUMER wait type – history and what you need to know

等待资源(wait_resource)解码的更多相关文章

  1. 初涉SQL Server性能问题(2/4):列出等待资源的会话

    在初涉SQL Server性能问题(1/4)里,我们知道了如何快速检查服务器实例上正运行的任务数和IO等待的任务数.这个是轻量级的脚本,不会给服务器造成任何压力,即使服务器在高负荷下,也可以正常获得结 ...

  2. mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决

    前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: ...

  3. ORA-00060:等待资源时检测到死锁的一种处理方法

    先执行脚本: SELECT p.sipid, a.serial#, c.object_name, b.session_id, b.oracle_username, b.os_user_name FRO ...

  4. oracle中“ORA-00060: 等待资源时检测到死锁” 或存储过程编译卡死 解决方法

    之前在调试存储过程时,出现卡死情况,无法插入数据 解决方法 1.查看那些表被锁住: --1.查看那些表被锁住--- select b.owner,b.object_name,a.session_id, ...

  5. sql server 性能调优之 资源等待PAGEIOLATCH

    一.概念 在介绍资源等待PAGEIOLATCH之前,先来了解下从实例级别来分析的各种资源等待的dmv视图sys.dm_os_wait_stats.它是返回执行的线程所遇到的所有等待的相关信息,该视图是 ...

  6. Expert 诊断优化系列------------------透过等待看系统

    上一篇我们简单的介绍了,语句优化的三板斧,大部分语句三板斧过后,就算不成为法拉利也能是个宝马了.为了方便阅读给出系列文章的导读链接: SQL SERVER全面优化-------Expert for S ...

  7. 【监控实践】【4.4】使用DMV和函数监控数据库状态和资源使用

    1.查看当前实例运行进程 -- 核心DMV.函数.系统SP:/* 所有进程请求:sys.dm_exec_requests 所有进程与连接:sys.sysprocesses 系统函数,查看sql:sys ...

  8. DBA_Oracle Event等待事件分析(概念)

    2014-12-18 Created By BaoXinjian

  9. Delphi中关于资源释放(Free,Relealse,FreeAndNil)

    根据日常编程经验,得出一些Delphi中关于资源释放的体会. 假如有对象Obj为TObject类型: 1) Obj.Free直接释放资源后,调用OnDestroy事件,但是没有将Obj指针值置为Nil ...

随机推荐

  1. SpringBoot与MybatisPlus整合之活动记录(十五)

    活动记录和正常的CRUD效果是一样的,此处只当一个拓展,了解即可 pom.xml <dependencies> <dependency> <groupId>org. ...

  2. Emacs 学习之旅

    **Emacs 的使用过程,就像是程序员的生涯一样--路漫漫其修远兮,吾将上下而求索.** ## 万物始于 Emacs 最早知道 _Emacs_ 是从编辑器的圣战开始的,即编辑器之神--Vi,和神的编 ...

  3. 关于ArcGIS的OBJECTID生成策略拙见

    目录 诉求SDEOBJECTIDArcMap编辑重置OBJECTID 诉求 非GIS专业的人员可能很难理解ArcSDE中的表OBJECTID的重要性,要么总想着自己动手去维护,要么就想直接忽略它,导致 ...

  4. CVE-2019-17671:Wordpress未授权访问漏洞复现

    0x00 简介 WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客 ...

  5. Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现

    Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现  一.     漏洞简介 漏洞编号和级别 CVE编号:CVE-2019-0232,危险级别:高危,CVSS分值:官方 ...

  6. 读书笔记-《Maven实战》-2018/5/3

    5.7依赖调解 1.当一个项目有以下依赖关系的时候:A->B->C->X(1.0).A->D->X(2.0),X作为A的传递依赖而拥有两个版本,Maven为了解决以上问题 ...

  7. Java零基础入门之基础语法

    一.Java标识符 什么是标识符? 标识符是用来标识类名.对象名.变量名.方法名.数组名.自定义数据类型的有效字符序列. 合法的标识符 ①:由字母.数字.下划线"_".美元符号&q ...

  8. 史上最全 Java 中各种锁的介绍

    更多精彩原创内容请关注:JavaInterview,欢迎 star,支持鼓励以下作者,万分感谢. 锁的分类介绍 乐观锁与悲观锁 锁的一种宏观分类是乐观锁与悲观锁.乐观锁与悲观锁并不是特定的指哪个锁(J ...

  9. python经典面试算法题1.3:如何计算两个单链表所代表的数之和

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [华为笔试题] 难度系数:⭐⭐⭐ ...

  10. linux No module named yum错误的解决办法

    linux No module named yum错误的解决办法 肯定是yum的版本与当前python的版本不一致造成的 <pre>所以修改yum的配置,修改文件: vim /usr/bi ...