说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

sql阻塞相关的问题,我需要真正的高手,100分悬赏,长期有效。

编辑:说三道四文库 发布时间:2017-05-29 12:39
HTML文档下载 WORD文档下载 PDF文档下载
首先谢过进来的高手!
此问题,本人研究长达半年已久,尚未找出真正原因。
问题现象很简单,就是当两个spid同时访问某一资源时,会出现锁定进而发生阻塞。

先说下,我这里的程序环境。
SQL服务器是IBM品牌机,Win2000sp4,sql2000企业版,系统里没装其它软件。
只有一个用户数据库,数据文件有4G左右,日志文件有3G.
客户端情况:使用人数在50人左右,客户端软件是用PB开发的,这50人并非会同时访问数据库,但一运行这个客户端软件都会连接数据库。

发生阻塞的过程基本上是这样的:
A用户提交了某一个查询,比如查询了a表,返回结果正常,A用户进入等待状态,当然,它依然保持对服务器的连接。
B用户提交另一查询(有时候可能是update),也涉及到了a表,这时就有可能出问题了。B用户的这个SPID就会陷入等待状态,很多时候这种等待是无期限的,不知道这是不是所谓的死锁。当然,客户机的反应就是应用程序出现假死状态。

查阅微软官网,找到了这方面的文章,编号为224453和271509
(不知道什么原因,224453这篇文章现在没中文简体的了,但可以找到繁体的,强烈BS微软一下。)
http://support.microsoft.com/kb/224453/
http://support.microsoft.com/kb/162361/

按照224453中的指示,查询master.sysprocesses,确实能找到阻塞的SPID,KILL掉,一切都正常了。
现在的问题的,它为什么会发生阻塞呢?据同事介绍,之前还好好的,这期间软硬件都没改变过。
所以还得深入研究,说实在的,微软写的那些东西真的太专业且太啰嗦了,按他的指示,查这个表执行那个存储过程,经常是折腾了我半天搞出来的结果我又看得似懂非懂,哎,这也只能怪小弟我学艺不精,所以在此跪求进来的大虾们不吝赐教。
现列出一些我发现的问题点。
(1) 无论是否出现阻塞,服务器的CPU使用率都不高,基本上10%不到。
(2) 一个值得研究的现象:比如spid56被spid90阻塞,可是sysprocesses表中,spid90这个连接lastbatch的时间有可能是距离阻塞几个小时之前。也就是说,spid90这个连接上次执行操作已经过了几个小时了,但它还对某一数据保持锁定。当然,这种情况不是绝对的,通过我的观察,有的时候,这样的阻塞会自行解除。
(3)以下是在有阻塞时执行sp_blocker_pss80存储过程的结果:
等答案吧
UP..........
http://topic.csdn.net/u/20080721/20/15a60db6-34b5-4ea1-b392-11c42270aaab.html?19834
死锁啦..学习中....
该不会是查询设置了可重复读以后就没关闭连接吧,能看客户端的代码吗?
客户端 代码编写的事务处理有没有影响到啊
返回结果正常,为何A用户进入等待状态而不释放掉。
帮顶.
7楼,这个问题我也想不通,所以奇怪就在这里呀。但问题是,同样的程序,以前它好好的呢!
要说客户端程序有问题吧,我也怀疑过,但我没办法看到代码,所以也没证据。

不过,PB写的应用程序,它要连接SQL,肯定使用ODBC,也就是说,站在SQL Server的角色上去看,所以来自客户端的查询请求都是标准化的了。那么和PB代码关系也就不怎么大了,当然,公平是要看它的连接那一块是怎么做的。我不怎么懂PB,所以也无从下手。

另外,我通过SQL事件探查器,追踪了一段时间所有来自客户端的命令,发现都很正常呀,没什么特别的。那些客户端程序提交的SELECT语句都不复杂。
有可能是客户端代码问题,比如客户端开启了一个序列化级别的事务,且没有及时终止该事务 
这肯定是死锁,客户端语句是肯定有问题,会不会是几个客户端SQL同时查询时太大太长。就会出现这种情况。
从 lz 提供的信息分析,spid 56 的 select 语句在请求行 s 锁时,被 spid 90 在该行上保持的 x 锁阻塞。而 spid 90 一直没有完成事务,释放此 x 锁,从而造成了阻塞。具体原因可能与 spid 90 在请求 networkio 上的等待有关。

具体分析需要通过“事件跟踪器”跟踪一下 spid 90 所执行的 sql 语句,看看是什么语句在请求 networkio,这个 networkio 又与什么网络问题相关(可能要分析程序代码)。
该回复于2010-07-28 10:55:59被版主删除
帮顶,估计为客户端问题?以前没有发生是否是因为当时数据量小所以没有问题,现在数据量大了而几个客户端同时查询就太大太长了。

DBCC INPUTBUFFER(SPID)
看看那个SQL语句还是SP出问题了!
多谢12楼!
networkio这个你看一下1楼我的帖图,绿圈那里,是否不正常?

多谢15楼!
DBCC INPUTBUFFER(SPID)这个结果,我在1楼有帖出来的(最下面两行)。
帮顶。
或者你没事运行个cut 死锁的sp……
自己顶起来!
同样的程序,以前它好好的

是SQL的环境改变了? 还是客户端有修改过?

看起来很像是PB端没有AutoCommit的结果
更新时加上更新锁试试

这期间软硬件都没改变过。


千万不要信这个,呵呵。

帮顶。
看一下,想一下
楼主,你的问题我提两个解决参考方案:
1、首先查找你系统的开发程序bug(指的是PB)。这个访问压力不该出现这种情况,高概率是程序问题。 
    一些操作DB的方法程序bug,如连接DB方法,声明成静态方法,那么多用户调用时,就不会创建新对象,会出现程序层面的排队。 我在上万并发的情况,遇到过此类现象。  
    此外还有数据事务(程序+Sql两点都要查)也很有可能导致。
    此外还有外键关联……   

2、如果实在找不到原因,结合数据完整性要求, 可以把数据操作语句改为 select * from table with(nolock) 。加上后面这个修饰符,往往银行业务对数据即时性要求高,不适合这样写。

最后祝你,好运,找到原因,记得分享经验。
跟踪一下,看A/B都执行了哪些SQL指令。。。。SQL 2000不会有此低级错误。。。
我认为有两种可能
一,有人更改过select语句并在select时给表加了锁,可能为了防止数据不统一。select如果加了锁再select没有执行完之前,其它的任何语句都是等待状态。
二。你的代码编写不合理,系统压力过大,有些界面假死需要处理成线程,这样即便短暂等待也不会出现界面假死
正在受到相同问题的困扰
强顶此贴!本人也正受此困惑,而且情形一模一样!
查询了一些资料,归纳一下有以下几种可能:

1、应用程序中SQL语句更新后未及时提交或回滚,未在提交前处理了其他事务或有响应窗口消息需要用户确认的话,则此表一直处于锁定状态;

2、多表间提交顺序不一致,如X用户提交按顺序提交a、b两表,Y用户按b,a顺序提交,造成死锁

3、不知道病毒会不会造成这种状态,因为我的系统在有些客户那里就没有发生

4、客户端系统最好不要用同一版本Ghost
访金山云CTO杨刚:开源改进PK自主研发,技术驱动前行 苹果涉及色情问题,且进一步恶化 开源产品系列:面向组件的Web框架tapestry 360指责百度窃取用户信息 公布美杜莎插件技术分析 苹果正式发布iOS 6.1 最快本周日即可越狱 苹果高管:运行iOS 6的设备达3亿 Chrome OS 黑客大赛总奖金为314.159万美元 微软雷德蒙研究院副总裁:从计算研究到惊人发明 还驾驭不了4核? 别人已模拟出百万核心上的并行 RIM将网络直播BlackBerry 10发布会 解读TDD的五大误区 Amazon 2012财年Q4财报:电子书业务增长70% 从暴风影音CTO到创业者:画中画相机话中话 为什么Android应用开发总要比iOS晚? 传奇VC马克.安德雷森:未来的企业什么样? 呼吁国会通过“创业签证”:奥巴马助力美国招揽海外人才 Surface Pro最低1019美元,价值究竟如何? 搜狗号码通产品经理谈微创新 数据和运营更关键 在线推荐系统是如何进行工作的? 欧朋浏览器上架App Store,iOS生态真要变天? 苹果iOS 6.1地图搜索API将替代谷歌Places Oracle向开发者承诺 称尽快修复Java安全问题 日本:开发者与投资人都不容忽视的移动市场 Unity 3D引擎:十大最火的插件推荐 重塑品牌 RIM更名黑莓 发布BlackBerry 10移动操作系统及新手机 NoSQL依赖的不只是大数据 还有应用程序架构的改变 新一代Apple TV增强内在组件 外观不变 加速Web开发的7款知名HTML5框架 Firefox OS开发者日来袭 5小时15款Web应用出炉! 微软发布Office 365家庭高级版 订阅费499元/年 鲍尔默对Office信心满满,十亿用户量触手可及 架設smtp的問題??? FastNet组件 怎样在sql语句中进行数据转换啊 在线等 ,,,怎样获得汉字的编旁 在程序中用函数设置session的时效、存放路径 如何在ms-dos下降低cpu的运行速度?(汇编,C高手请进) 求解决链表问题 请教:如何在linux嵌入系统中编写外设驱动程序.谢谢 Micrsoft JDK nmake生成的EXE文件反编译问题!!! 多态问题 专业调查:军训练什么,学到什么!!????? 使用IS for Delphi 4制作安装盘.安装时时出现401号错误(字符串变量不够长) 介绍几本VC入门的好书 大家谈谈,数据库应用程序如何设计及使用类! Oracle的登录问题! 请问如何在VC中取得传入的参数? 现在的浏览器还支持不支持applet啊?高手救我!--------怎么写一个applet兼容更多的浏览器? 请问那里有这种工具??近来看看!! 请capboy等写过filter的各位前辈指点 利用DW制作一张确定最佳分辨率为800*600或者1024*768的页面, 急 求助: 怎样获得系统当前可用的字体? 如何打印FormView? 如果你是VC高手,对COM有深入了解,欢迎! 我今天看了我英语过级的公布成绩,我得了一个天险数字60。5分,请问。。。。。? 谁有linux下的mod_webapp.so DW UltraDev里rs.source="select * from stu where banci=request.QueryString("banci")这样是不是不行? Microsoft JDK nmake生成的EXE文件反编译问题!!! 各位大虾:请问谁能告诉我哪里能找到win xp home edition plus???如果能让我找到,送1000分 请问如何将PaintBox.Canvas的当前内容保存至内存, Linux下c语言程序该怎样运行? 请问:vb.net中oracle数据库能否支持blob格式? .ceb文件如何打开? 什么地方能够找到《Exploring Requiremengs:Quality Before Design》这本书? 关于制作一个classwizard的设计思路,欢迎大家讨论 weblogic server console: java.lang.NullpointerException 如何得到本局域网上所有主机的ip? 请问: 如果在网上可以通过网页上传某些文件到服务器空间上,并显示一些关于上传文件的信息~ 一段检测光软驱的程序,大家帮忙除Bug! 为何会死机? 高分放送,木马病毒求救! tomcat下的分布怎么做? 各位使用手机的老鸟,2000左右的手机什么牌子的好 喜欢硬件朋友请进来看看。 如何复原被Linux改写的引导扇区呢 请问各位大虾,怎样将c++同数据库结合起来 大哥......你继续看!!!??? 喜欢硬件朋友请进来看看。 在哪里调用方法?是在cpp文件还是在.h文件里? 初学者关于显示的问题? depunf朋友,您好,stringgrid那里有delete啊?敬请赐教! formula one报表打印问题 改革开放人们的衣着有什么变化 一列火车每分钟行驶1.2千米进入隧道,从车头到车尾离开隧道共需0.6分钟,已知隧道长560米,车身的长是多少米? 冷却塔蒸发损失计算中冷却介质的温度较高或较低是怎么界定的.急, 新中国成立以来,人民衣着的变化新中国成立以来,人民衣着服饰的变化,1500字以上, 下出下列化学方程式mg+o2===点燃===mg0,hgo==△===hg+02,na2co3+hcl===nacl+h20+co2h2+cl2===hcl.c+o2===点燃===co2,kmn04---△----k2mn04+mn02+02 代表死亡的树是什么树 春天里人们衣着有什么变化 有乙醇的原电池吗?就是乙醇做电解液.两极是铜和锌. 1小时蒸发500L,一般需要多大的冷却塔 的确是我打了他.这里面的”是“是什么用法,这个句子是非主谓句吗?是不是你打了他?这里的”是不是“是什么用法? 在2HGO=2HG+O2里面汞的化合价是多少 春天里最适合种什么树 主谓句的分类:“我总是文绉绉的”是哪类主谓句,“总是”是状语吗 已知Mg(s)+1/2O2(g)=MgO(s) △H=Q1,2Hg(s)+O2(g)=2HgO(s) △H=Q2,现有反应Mg(s)+HgO(s)=Hg+MgO △H=Q3,则Q3应为正确答案是Q1-1/2Q2,我想问为什么不是1/2Q2-Q1呢 甲骨文在我国文字发展史上具有怎样的地急! 下列句子是非主谓句的一项是( )A.那樱花粉得像霞 B.我的书包呢?C.今天星期天.D.满足需要是人类从事劳动的目的和内在动力. 请告知甲醇的原电池反应怎么写,要求写出正极和负极的反应 甲骨文在我国文字发展史上具有怎样的地位 冰箱冷冻室漏气怎么?我用菜刀去戳了一下,没想到就开始漏气,一开始漏的很厉害,但是几十秒之后就差不多没了,只是戳破了一个小眼,不大,我就用了报纸啊之类的东西去堵住,感觉没有怎么漏 生长在南方的树有什么什么地方都有的也好 中李斯具有怎样的性格特点? 一个随机交配的二倍体平衡群体中某一基因座(只有等位基因A和a.其概率分别为p和q)具有哪些基本特征?A.显性基因频率等于隐性基因频率B.杂合子的最大概率为0.5C.群体点位于2DR-H²=0的抛 求关于诚信的文章(1200字左右) 《史记 李斯列传》说明了什么道理 英语翻译 14学会合作所举的两个事例是什么 急求《史记 越王勾践世家》中一段的古代汉语句法结构分析其后四年,越复伐吴.吴士民罢弊,轻锐尽死于齐、晋.而越大破吴,因而留围之三年,吴师败,越遂复栖吴王于姑苏之山.吴王使公孙雄肉 怎样才能促进脑垂体分泌更多的生长激素?18岁,才16多,我以前经常踢球,但是还是那么矮,运动也不见得有效.有什么办法脑垂体分泌更多的生长激素 严重鄙视广告.哪位大侠知道广州市哪家医院 乙醇怎么到乙炔 英语翻译这几段的翻译或注解:1.赵高案指李斯,李斯拘执.鹿游于朝也.”2.于是二世乃使高案丞相狱,.囚安得上书!”3.赵高使其客十余.为丞相所卖.”4.二世二年七月.夷三族.有注解最佳 為什麼自然界的某種群的一對等位基因中,基因頻率相等時,顯性性狀個體數量一般較多? 怎么用乙醇制乙炔乙醇能不能才浓硫酸的催化下从乙烯进一步变乙炔,温度是多少 英语翻译于是………………上郡使者至………………系于阳周 麻烦帮我分析一下这句话的成分The man running over there is our chairman.= The man who is running over there is our chairman.前面一句的谓语是 后面一句的定语从句是不是只有“ who is running ”这一部分,剩下的 关于醇类燃料原电池反应对于一些醇类燃料原电池的反应原理,我不太清楚 .在写其正、负极反应是有什么技巧? 有些循环水冷却塔中为什么需要两级,中间加缓冲罐,这样做的目的? 英语句子分析,麻烦帮我分析一下一个句子To find your way can be a problem,特别是your way 作什么成分呢?不定式作主语是吧,那your way是什么呢?还有a problem又是什么呢, 中国汉字发展史要有字的演变,比如哪一个汉字从象形文字演化到今天的文字的过程 循环水开式冷却塔结冰什么原因及解决方法 填空题:在自然界中,各种动物之间因为食物存在着复杂的-------和-------的关系,从 人体内的生长激素是由哪里分泌的? 各种花朵的含义及象征 大自然有什么变化 在自然界动物的——,是普遍存在的.正是由于——,——和——的存在,是动物之间的联系错综复杂,——才成为——的整体. 鸽子一定会飞吗 环境有哪些变化 自然界中有没有2种动物互相以对方为食物?就是A以B为主要食物 B以A为主要食物 有没有这样的2中动物? 鸽子多大会飞40天会飞吗 一般是怎么检查装置是否漏气呢? 为什么说动物与植物最根本的区别在于细胞结构?而不是运动方式或呼吸方式? 鸽子会不会飞回来 都说运动可以刺激脑垂体分泌生长激素,但这句话的意思具体是什么?我的意思说,1:如果我在上午10点运动,那么10点这个时间我的脑垂体是不是正在分泌生长激素,我正在长高,只不过脑垂体分 管道保温主要分为哪几类,分别用的什么材料 为什么鸽子晚上不会飞 如何外力刺激脑垂体分泌生长激素 等位基因基因能表现两基因所要表达的性状吗? 树最适合用来表示() A有序数据元素 B 无需数据元素 C 元素之间具有分支层次关系的数据 D 元素之间 联系的 在春天里,人们的衣着会发生什么样的变化?求求你们,谁帮我我有悬赏分给他,我豁出去了!1 两城相距336千米,两列火车同时相向开出,3小时相遇,已知甲车速度比乙车快3分之1,求甲乙的速度 什么树可以代表学校
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘