查看: 8920|回复: 10

关于SOS_SCHEDULER_YIELD问题

[复制链接]
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21紫蛋头
日期:2012-01-31 14:33:10紫蛋头
日期:2012-02-14 20:00:03优秀写手
日期:2013-12-20 06:00:12日产
日期:2014-01-17 09:38:592014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
跳转到指定楼层
1#
发表于 2014-3-31 18:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的数据库上有些sql 的运行时快是慢,慢的时候几十分钟,快的时候仅几秒种,我通过sql monitor找到这个sql 有SOS_SCHEDULER_YIELD问题,可不知道这个问题是怎么回事?哪位能讲一下成不?呵呵
论坛徽章:
54
秀才
日期:2017-02-22 15:18:002015年新春福章
日期:2015-03-06 11:57:31懒羊羊
日期:2015-03-04 14:48:16马上有对象
日期:2014-10-24 17:37:552014年世界杯参赛球队: 比利时
日期:2014-08-05 11:35:382014年世界杯参赛球队: 阿根廷
日期:2014-07-15 10:49:33马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11路虎
日期:2014-01-02 12:55:56ITPUB社区12周年站庆徽章
日期:2013-10-08 15:00:34
2#
发表于 2014-4-1 08:26 | 只看该作者
Windows是抢占式机制,SQL OS是YIELD,就是主动控制点机制,这更符合DB并发请求执行的需求
YIELD:在一个任务进行中,若发现需要等待某些资源或已经占用很大的时间(当然这个大不是秒或分钟或者N个CPU)资源
就会在适当的点上将CPU(or RAM)资源让出去
对于一个系统来说,重点关注CPU、RAM、磁盘的互相影响,可能需要从结构如索引或设计上改进、优化

使用道具 举报

回复
论坛徽章:
3
2013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09
3#
发表于 2014-4-1 08:50 | 只看该作者
看一下你的CPU有没有压力啊,比如是否有很多等待执行的SQL,可能是由于CPU压力导致的。

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21紫蛋头
日期:2012-01-31 14:33:10紫蛋头
日期:2012-02-14 20:00:03优秀写手
日期:2013-12-20 06:00:12日产
日期:2014-01-17 09:38:592014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
4#
 楼主| 发表于 2014-4-1 09:20 | 只看该作者
没看到CPU有多大的压力呀?所以感觉很奇怪哟!

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21紫蛋头
日期:2012-01-31 14:33:10紫蛋头
日期:2012-02-14 20:00:03优秀写手
日期:2013-12-20 06:00:12日产
日期:2014-01-17 09:38:592014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
5#
 楼主| 发表于 2014-4-1 14:12 | 只看该作者
这里有篇文章写得挺好,有兴趣的朋友可以来看看,可惜是英语的:
http://www.confio.com/logicalrea ... er-yield-wait-type/

使用道具 举报

回复
论坛徽章:
10
2010新春纪念徽章
日期:2010-03-01 11:06:22ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:192013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09itpub13周年纪念徽章
日期:2014-09-28 10:55:55懒羊羊
日期:2015-03-04 14:52:112015年新春福章
日期:2015-03-06 11:58:18
6#
发表于 2014-4-1 14:30 | 只看该作者
Bendy 发表于 2014-4-1 14:12
这里有篇文章写得挺好,有兴趣的朋友可以来看看,可惜是英语的:
http://www.confio.com/logicalread/sql- ...

看了这个问题解决了??

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21紫蛋头
日期:2012-01-31 14:33:10紫蛋头
日期:2012-02-14 20:00:03优秀写手
日期:2013-12-20 06:00:12日产
日期:2014-01-17 09:38:592014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
7#
 楼主| 发表于 2014-4-1 16:12 | 只看该作者
还没解决,客户的库我还没有权限,但我得提前知道原因,然后找到努力的方向。我个人感觉可能还是整个数据库的性能有问题,所以先看看是不是有慢的查询占了太多的cpu

使用道具 举报

回复
论坛徽章:
8
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44ITPUB8周年纪念徽章
日期:2009-09-27 10:21:21紫蛋头
日期:2012-01-31 14:33:10紫蛋头
日期:2012-02-14 20:00:03优秀写手
日期:2013-12-20 06:00:12日产
日期:2014-01-17 09:38:592014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11
8#
 楼主| 发表于 2014-4-2 13:45 | 只看该作者
我在生产库上查了一下:
SELECT cpu_count AS [Logical CPUs]
,cpu_count / hyperthread_ratio AS [Physical CPUs]
FROM sys.dm_os_sys_info

12        2

也就是说有2个物理CPU,而有12个逻辑的CPU,这能不能说明CPU不太够用呢?哪位帮分析一下?

使用道具 举报

回复
论坛徽章:
4
2014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:02马上有对象
日期:2014-02-20 19:18:44秀才
日期:2015-11-11 10:07:14
9#
发表于 2014-6-6 13:45 | 只看该作者
Bendy 发表于 2014-4-2 13:45
我在生产库上查了一下:
SELECT cpu_count AS [Logical CPUs]
,cpu_count / hyperthread_ratio AS

不是,这个只是基本的信息,并不是说明cpu少。

我觉得还是语句写的有问题,应该还有可以改进的地方。

最近公司一个数据库上,运行一个大的查询语句,也会出现这种等待,但是把语句修改后,就非常快了10多秒内就能返回结果。

你可以检查一下你的语句,有没有不必要的join,另外,有些distinct的语句,可以修改为exists 子查询的方式。

另外,在语句中尽量不要用 自定义函数。

使用道具 举报

回复
论坛徽章:
0
10#
发表于 2014-6-6 14:46 | 只看该作者
单个CPU应该很高吧,但整个CPU很低。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表