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

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

编辑:说三道四文库 发布时间:2017-03-26 07:21
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
如何利用单台服务器实现10万多个Git仓库托管 Swift的初始化方法 TIOBE 2015年1月编程语言排行榜:JavaScript成大赢家 为什么iOS开发不需要Storyboard? 仅有纽扣大小的开发板 Intel Curie “撒娇”的豌豆荚?被百度手机助手屏蔽太糟心! 【工具推荐】Pgcli—自动完成和语法高亮的Postgres命令行工具 CES 2015:挑一款机器人带回家? 夜行、睡眠与健康:CES 2015十款酷炫的可穿戴产品 Java 9中新的货币API 唯“简”不破,Apple Watch App的设计之道 Google Glass从X labs“毕业”,更换项目负责人 不进化,则消亡——互联网时代企业管理的十项实践 RedMonk 2015年1月编程语言排行榜:进击的Swift! 微信开放JS SDK,这场web巨变意味着什么? 盘点一些iOS开发技巧:Swift和Objective-C 2014年,那些“颜值”爆表的UI动画 《近匠》爱加密:谁说iOS应用不需要保护? SwiftColorArt:开源易用的Swift图片类库 人气爆棚 干货满满 中国电信天翼开放平台开放日圆满落幕 必须Mark!43个优秀的Swift开源项目推荐 治拖延、疗懒癌!安利12款提高工作效率工具 把ES6带进Node社区 Io.js 1.0.0正式发布 Java 2014:10个最热门、最具争议性的话题 回顾:2014年最流行前端开发框架对比评测 实例讲解SQL注入攻击 调试大规模服务器集群的五大策略 .NET编译平台Rosly将迁移到Github Wasai虚拟现实头盔与体验馆发布:虚拟现实的线下经济 订票系统不再瘫痪 阿里云确认与12306合作 Apple前工程师Warren Moore:Swift中Metal使用初体验 十万火急,我遇上两个奇怪的问题。答者重谢。 请问:如何使用toString? 各位,期待已久的简单任务来了!又是100分!(SQL Server 2000) 好累啊,想放弃了,但又无法回头! Java中,Inner class可不可以使用final修饰符? 谁能告我liulee的个人网页地址呀??急 请教如何在程序运行时修改dbgrid控件options属性中的关于多选控制和整行选择的两个属性? 请推荐UNIX方面的书籍 如何使用toString()方法,谢谢 菜鸟系列:一个简单的编译错误,但我不明白!救命啊!!!! 这就是标准?SJ/T11234 SJ/T11235培训纪实 在哪里看我现在linux系统中用的应用软件的版本号?比如wu-ftp sendmail等等! 操作系统版本不同问题 BCB下怎么调用WINDOWS API函数,急 cpu风扇不转的问题…… 游戏开发的高手或者3维建模的高手,是怎样开发人物模型的呢? 今天下午有没有去微软发布会的????马上回答 关于字体问题!请教会者不难者!!!!!!!! 請問怎麼定義小一點得符點數???? ReadFile超时返回什么? 我的机器装了2000server,2000profession 和NT4.0,现在机器空间不够想把nt4.0和2000profession 卸载,请问应该如何进行?? 怎样用PB代码实现在MDI窗口里的 Ctrl + Tab 的功能 ? 如何将静态库加入项目中,有头文件,SETING出也加入,为何说和系统的库重复定义 如何调用非mfc的程序调用mfc下开发的动态连接库, 请问谁有监测图片变化的部分代码?(在线等待) GetCurrentDirectory()?? 用ADo更新图片(bmp,jpg)难道只能将原来的数据记录删除后在添加吗?不能直接更新吗? 请大家帮忙解决一下循环体的问题!!:) 请问oracle 自己带的http server(实际上是apache)如何配置class path 给你100分(OLE) 我在制作一个网络浏览器时遇到一个问题,在线等你的帮助 公司不做软件了,失业了,高兴送分 JNI 中内存管理的问题 ehlib控件的问题,如何在表中的一字段显示一个列表?分可以加,,,在线等 大家帮我 c# 的一大难题? 一定加分! 十万火急~~谁有完整的网站计划书? 能不能给我一份,万分感谢! 高分求教不用ActiveSkin实现金山词霸类窗体和按钮效果。 用delphi编写的dll结果不能调用,谢谢你的回答!!! mscomm控件读写串口的问题 正式加入水园 请教ListView控件的使用。 这里有100分(OLE) 公司不做软件了,失业了,高兴送分 请问,哪有oracle express object 的使用指南下载呀。 急~~~~~~哪里可以找到完整的网站计划书? 告诉我下载地址也可以,非常感谢!!! 急!!!怎样用VBA写一句话,判断word是不是当前活动窗口? CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 的cs.lpszClass内容的不能改变 想了解下深圳的程序元的人工如何??请深圳的朋友介绍下好么?听说一般的都有6K~7K,是不是啊?? 插入表单的问题 SilverStream研讨会及中国CTO李渊明给人的印象 在饱和Ca(OH)2溶液中,放入少量CaO粉末,恢复至原温度在饱和Ca(OH)2溶液中,放入少量CaO粉末,恢复至原温度后,没发生变化的是(  )A.溶质质量B.溶液质量C.溶质质量分数D.溶剂的质量我 阴晴雨晦的晦的意思 一束光线与界面成60°角从空气斜射入水中时,发生了反射和折射,折射角为( ).一束光线与界面成60°角从空气斜射入水中时,发生了反射和折射,折射角为(  ).A、25° B、35° C、45° D、60° 对于一饱和Ca(OH)2溶液当向其中加入CaO后溶液密度怎么变? 上面一个雨下面一个云是什么意思 什么是青春正能量 【初三下科学】原始大气有水蒸气怎么没氧气?原始大气有水蒸气怎么没氧气?参考书里写的是有水蒸气的,水蒸气有H2O组成,有一个氧原子,怎么不会和其他的氧原子合成在一起生成氧气? 为什么生鸡蛋在水里会沉下去?而熟鸡蛋在水里会浮起来? 作文青春正能量600字-800字 举三个事例说明气体能容于水 生鸡蛋和熟鸡蛋在水中哪个来会浮起来? 浮力产生问题 懂的人进来在液体中 阿基米德定律:F=ρgv 但当它悬浮或者漂浮时 F=G 为什么算起来都不一样的阿 那到底应该用哪中进行计算! 硝酸铵溶于水温度会升高吗?请举出初中常用的溶于水会升温和降温的例子. 清明时节雨纷纷是形容天气还是气候的 求适合合唱又能传递正能量的年轻充满活力的歌 油是不是液体? 干燥剂 碱石灰 是氧化钙和氢氧化钙的混合物,在空气中容易变质,某研究小组对一只干燥管里的碱石灰样品的成进行试验探究猜想一,没有变质只含有 氧化钙和氢氧化钙 求 下列哪些是在说气候哪些在说天气 1.黄梅时节家家雨,青草池塘处处蛙 2.清明时节雨纷纷,路上行人欲断魂3.君问归期未有期,巴山夜雨涨秋池.何当共剪西窗烛,却话巴山夜雨时 4.梅子成熟季节, 电冰箱里的霜是怎么行成的?(凝华还是凝固) 请用二力平衡的知识简单解释物体浮沉的条件 清明时节雨纷纷 路上行人欲断魂描写的天气是a.伏旱 b.梅雨 c.霜凍 d.寒潮 天气是一个地方( )(长或短)时间里 ( )、( )、( )等的大气状况 天气对我们来说太重要了,r如果能 举例说明哪些液体和气体可以发声?一定要说明声源和发声原因,而且不要太肤浅的,要类似百科类的知识!(液体和气体各举两个例子)例:海啸时发出的响声是由于海水装击造成的. 清明时节雨纷纷受什么天气系统影响? 冰箱里的水蒸气遇到冰箱内壁为什么会凝华?气温差不多不是应该没变化吗怎么会凝华? 为什么风声雨声读书声 声声入耳能说明气体液体和固体能发声 生鸡蛋和熟鸡蛋哪个再水里容易转起来?要理由 电冰箱快速除霜 1立方厘米的水结冰后 求冰的体积是多少 我要完整的过程啊!谢谢! 为什么生鸡蛋能在水里浮起来而熟鸡蛋不能? 有的冰箱内会有"霜",这是用冰箱外空气中的水蒸发形成的,还是由冰箱内的水蒸气形成的?设计 天气是大气_____内的状况(如阴晴、风雨、冷热),比较____;气候是大____平均状况,比较_____. 一束光线以跟水面成45度角的方向从空气斜射到水面,则此光线经水面反射后的反射光线和进入水中的折射光线之间的夹角必定( )90° 填小于、等于或大于请说明理由 Cao可不可以和Ca(oH)2溶液反应 一束光从空气斜射到某种透明物质的表面,光线和界面的夹角是30°,反射光线和折射 折射光线和反射光线垂直,折射光线和入射光线的夹角是150度,反射角和折射角的大小分别是? 饱和Ca(OH)2溶液加入CaO能溶解么? 一束光线从空气斜射到界面MN上,入射光线与界面的夹角为30度,反射光线与折射光线恰好垂直,则入射角是 ,反射角是 入射光线与水平界面成37°角入射,反射光线与折射光线垂直,则反射角等于——折射角等于—— 在饱和碳酸钠溶液中通入二氧化碳,会有什么现象?为什么?碳酸钠和碳酸氢钠的溶解性谁大? 在一定条件下,Na2CO3溶液存在水解平衡:CO3 2- +H2O=HCO3 - +OH-.下列说法正确的是 如果一束光从空气中斜射入玻璃中,折射光线与反射光线垂直,与入射光线成170°角,求入射角反射角和折射角帮小弟 谢全家 CaO的水溶液和Ca(OH)2有什么区别?存在CaO的水溶液! 如图所示,一束光由空气进入某种透明物质时,在界面上发生反射和折射的光路,则下列A.AO可能是入射光线B.OB可能是折射光线C.OC必定是反射光线D.BO必定是入射光线 liyou .如图所示,一束方向不变的光线从右方斜射向水面,这时反射角是β,折射角是γ.若把水槽左端稍垫高一点,等水面重新平静后,反射角是β',折射角是γ',则( ) A)β'γ 这题选B,为什么当光由空气射入 在混有Na2co3和Naon溶液中通入CO2,哪个与CO2先反应?有什么现象? 在一定条件下,NA2CO3溶液存在水解平衡:CO3 2- +H2O=HCO3 - +OH-.通入CO2PH为什么会减小? 一束光线从右方斜射到水面,发生反射和折射,若把水槽左端垫高些,则反射角和折射角不变.原因是水仍然是平的.请问为什么水面仍然是平的? Ca(OH)2饱和溶液加入CaO溶液变浑浊 一束光从某种透明物质斜射向空气(如图所示)一部分光反射,一部分光折射,则折射光线跟反射光线的夹角是A.小于50°B.在50°与100°之间C.在100°与140°之间D.大于140° 1立方米的空气在水里有多大的浮力 什么东西可以表现出青春正能量 HCO3-+OH-====CO3^2-+H2O 对应的方程式是什么? 一个对每天跑操的感想,正能量,写每天跑操对自己的好处啊等等 到底什么是正能量 一束光由空气射入某介质,当入射光线和界面夹角为30 °折射光线恰好与反射光线垂直,则光在该介质中的传播速度是:A.C/2B.C/√3C.√3/2*CD.√3/3*C正确答案是D,我知道怎么算.我想知道的是,为什 我现在需要正能量,谁能给我正能量 Ca(OH)2溶液 达到平衡后 加热 pH变化? 加入CaO,恢复温度,PH变化? 阴晴雨诲哪错了哪个字并改正 一个生鸡蛋和一个熟鸡蛋 分别放在加有盐的水里 会有怎样的情况
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘