设为首页 收藏本站
查看: 1239|回复: 0

[经验分享] SQL提示查询处理器未能为执行并行查询启动必要的线程资源

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-5 08:15:47 | 显示全部楼层 |阅读模式
最近SQL经常提示“查询处理器未能为执行并行查询启动必要的线程资源”反应速度变慢。

SQL环境为两台服务器做故障转移群集,一主一备,主为48核心,64G内存,备为24核心,64G内存。

经检查发现服务已转移到备用节点(转移原因后续排查),因之前未出现过此问题,故障锁定在了计算机硬件,SQL配置问题上:我们的服务器CPU是4核(48个逻辑CPU),操作系统会将这些逻辑CPU进行分组。每个分组有分多少个逻辑CPU这个由操作系统决定。(每次重启电脑分组的数量可能会变的)假设,12个逻辑cpu一组,如果你的“最大并行度”是12那么这个sql只需要在这一组逻辑cpu里执行就可以了,这12个逻辑cpu共享同一块内存空间。也就是说,如果设置的“最大并行度”超出12,例如设置为13,那么就会出现“跨NUMA问题”。

当第二个组运算好之后,当一个组运算好之后,如果第二个组的另外两个逻辑cpu还没有运算好,那么就需要等待B、又或者第二个组已经运算好,出结果了,但是由于线程切换,或者服务器忙不过来

先检查服务器的CPU设置
属性--处理器--展开
wKiom1RYeszD7-9_AAHpc7Q-OdI246.jpg
CPU每次重启都会分组,而且每次分组的数量可能不同,查看备用机上SQL设置CPU分为了4组,每组6个核心,因此我们设置最大并发数的时候尽量不要超过6,否则就会出现查询跨NUMA问题

解决方法:
最大并行度改为5,单击运行值(点击后,最大并行度会显示灰色,不用管),点确定,不需要重启,等待十几秒生效。

wKiom1RYfO2w6-ukAAKMgrXL9-o083.jpg
备注: 并发跟并行是不一样,不是同一样东西。一个sql语句 /查询 的某个运算符如果需要多线程执行,sqlserver就会开启多线程来处理这个运算符。这个由sqlserver判断如果你没有设置并行度,假设你的cpu是四线程的那么sqlserver会用4个线程去执行如果你设置了并行度为2那么sqlserver只会用2个线程去执行你的查询而另外2个资源就给其他软件/操作系统使用并行度只是一个开关,决定是由sqlserver来决定的–查看哪些sql线程属于哪个处理器编组select [thread_address],[started_by_sqlservr],[creation_time],[processor_group],[scheduler_address] FROM sys.dm_os_threads



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-27024-1-1.html 上篇帖子: 数据库报错: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null 下篇帖子: SQL2012 尝试读取或写入受保护的内存。这通常指示其他内存已损坏 处理器 资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表