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

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

编辑:说三道四文库 发布时间:2017-09-24 06:06
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
炫耀分数已经out!ShareSDK发布游戏内视频录制SDK Android开发者必知的5个开源库 UCloud完成B轮融资5000万美元 Git远程操作详解 《近匠》iMAG:移动应用快速跨平台开发工具 Facebook斥资30亿美元购Snapchat遭拒后,推Slingshot 全球开发者报告:程序媛崛起,企业应用更赚钱! 土豪经济 E人E本发布首款4G安全手机 内忧外患:Android版FuelBand应用来得太迟? MongoDB 2.6.2 发布,大大改进查询功能 清华毕军&华为马云:SDN是学术和产业都看好的领域 向三星和苹果发难:亚马逊FirePhone 3D手机强势来袭 支付宝移动端与NFC芯片商、手机商合作 推出近场支付产品 Go 1.3正式发布,改进正则表达式! API设计如龙生九子,Tunneling、Hypermedia等更受开发者青睐 NFV+SDN,博科打造开放式网络平台 亚马逊开放双SDK:摄像购物,追踪脸部玩游戏 解析淘宝Hadoop作业平台——宙斯Zeus 亚马逊的心思:要Android不要谷歌 Vuforia SDK全面更新:3.0版可实时生成虚拟场景和物体 Stream SDK:以手为“剪”,随时随地分享精彩内容 一周消息树:惠普研发基于Linux开源操作系统 打造全新计算机 我从谷歌学到的那些事:Toilet文化、代码实验室 对话大神Scott Shenker:从物理博士到SDN's Uncle 巨头们的又一战:健康数据服务平台 移动应用广告新竞争,Facebook不再一家独大 为什么Fire Phone手机价格不便宜? 老牌播放器暴风影音发力线下与自制内容 APP运营:“小数据”为合理化推送定位 TCL H5TV:回归电视本质,与开发者共赢 烽火星空徐国龙:依托平台,坚持开放与标准,企业移动化快速研发之道 很基础问题,脑子不清楚,大家帮忙看看 紧急问题! 终于 知道MESSENGER 只是 WIN2K 的服务了! 那么 这 个怎么办?? 请问以下我如何实现一个带滚动条的子窗口 问一下,resin和iis集成后class文件放在什么目录下 用 http://www.rc80.com (c# + sqlserver2000) 只想换一个.net 的完整的分页代码! 一个Corba客户端连接的问题! 如何在resin中设置wap服务器功能 大家帮忙!! 什么时候用DataGrid,什么时候用DataList? 怎么样从数据库里取得某字段的值??? 昆腾的硬盘修理找谁啊?急,UP有分........ www.webmatrixhosting.net免费空间中FTP文件上传问题 Apache 2.0.43 +Tomcat 4.1.24+mod_jk2-2.0.43.dll整合问题出现:The servlet container is temporary unavailable or being upgraded 我装的Delphi7好像丢了一个文件:Proxies.pas,哪位好心人给我一个? 人,真脆弱! 开水房追女之呕心沥血计划 (超暴笑) 孤独 急!!Image对象如何设置成为透明的???Thanks! 【憋的慌】大头、阳光呢!!! 关于FLASHMX的遮罩问题 一个问题,想不通! 【憋的慌】死水、一辉呢!!! 急!!!急!!!怎么在建表时使用一个时间函数??就是指出加这条这条文件的时间?? 【憋的慌】蓝心、风呢!!! 怎么获得一个应用程序的图标,比如我用进程ID,获得其主模块,然后怎么办! 【憋的慌】冰冰、贝贝呢!!! 我获得一个服务,可以检验综的状态什么的,可我想获得除了这个以后的东西比如:.... 【憋的慌】珊珊艾、CoolSlob呢!!! 关于adodc控件删除的求救 【憋的慌】冰儿、江风呢!!! 关于Apache wuxuan、kingzai、jemmylau各位版主,请问怎样才能得更多的可用分?我看有些人有几千分,真不解。 提示问题!菜鸟问题马上送分 请问哪有php安装程序下载? [散分]探望qxjavajava 使用gdiplus.lib出现下面的错误? 讨论MVC--Model这块的实现方法(不用EJB的情况)??还有那里有可以自动生成DAO和VO的比较不错的工具吗? 关于网络传销 关于个人bean的问题!!!! windows 2003 server 下为什么不能装sql的任何版本 挑战性问题:ToolBar为何在客户区?而MainFrameWnd的在非客户区?(高分) 一个奇怪的问题 再搞不定我要自杀啦。。。。。。。 求助!测试数据库的师傅来看一下啊(adodc 对象编程) 请问,图书怎样分类,分哪些类比较科学? 推荐几个比较好的C++的论坛吧 谁能帮我一下! 请大家帮助 给50分!!!!!!! 为水源200多位水友鸣不平,鄙视某人。。。 请教各位高手(菜鸟) I ___ tell her the truth.A.cannot help B.cannot but C.may not help D.could but 两地相距510km,两车相向而行,若同时出发,则5.1小时相遇,若乙车先出发2小时,两地相距510km,两车相向而行,若同时出发,则5.1小时相遇,若乙车先出发2小时,则驾车出发后四小时相遇, we bought one kilo of cheese .(就画线部分提问) cheewe bought one kilo of cheese .(就画线部分提问) cheese did you buy ? 英语英标中像“阿拉伯数字6上面再加一瞥”的那个音标是发“日 Let the boy --------[not leave】at once. How does your cousin spend her holiday?(用they换your cousin)改写 Peter doesn't like eating chocolates.It tastes too (s——) 求初一素描科幻画 本人只会素描! she began practicing her guitar skills for several hours each day,__when her fingers began tobleed.A.stop only B.stopped only C.only to stop D.only stopping答案为什么是D?C怎么错了? It tastes like chocolate中的like是什么词性,在句中做什么成分? a,b两地相距510千米,甲,乙两车分别由两地相向而行,诺两车同时出发五又十分之一小时相遇,诺乙车先出发2小时,则甲车出发4小时后相遇, family当家人讲时是可数还是不可数的? 1997减2分之一,然后剩下的减3分之一,以此类推,最后减去1997分之一,最后得多少?会的回答 How do you like hamburgers and potato chips? 详细解释下family什么时候可数,什么时候不可数,families是指什么 一朵桃花劫不出桃子最可能被虫子破坏的结构式 A B 两地相距510km,甲 乙两车分别有两地相向而行.如果两车同时出发,那么两车5小又十分之一 小时相遇.如果乙车先出发2小时,那么甲车出发4小时后相遇,求两车速度. 洗浴所说的大保健什么意思 You'll regret______those words.You may hurt her feelingsA sayB to sayC having saidD to have said The bady drinks milk every day(对milk划线部分提问) eat,amy,an,doesn,it,ice-cream.连词成句 homework可数? My uncle drinks milk every day.一般疑问句并做肯定回答 Jenny is too fat,____ she doesn't eat ice-cream.A.and B.butC.so D.then选哪个? Because ut takes 4 kilos of grain protein to produce half a kilo of meat pro My son has many milk every day .那错了?怎么改?呜呜~(>_ 放鸽子比喻什么 甲乙两车分别从ab两地相向而行,甲车每小时行80km,乙车每小时行全程的10%,当甲车距离B地的路程与已行的路程之比是1:5时,乙车再行全程的八分之三到达A地,AB两地相距多少千米? My sister has many milk every day改错 被放鸽子是什么意思? 这个故事发生在2012年,翻译成英语,用happen 还是take place 你不会不觉得跑进家来的小松鼠是可爱的吧?什么意思? 什么叫放鸽子?假如说你约了她,却因为有事情打了电话给他,跟他说,他又同意了叫放鸽子吗?(他还没出门) 哈奇小镇(魔法哈奇)的小翅膀在哪买? weekends,does,spend,his,how,brother,his(?)连词成句 “放鸽子”是什么意思啊? 甲乙两车分别从ab两地同时出发相向而行,甲每小时行80km 乙每小时行全程10%,当乙行到全程的5/8时,甲再行全程的1/6到达b地,1.ab两地相距多少km?2.甲车再行几小时到达B地?我知道第一问了,可第二 about today 歌词 some fruit 可以用单数也可以用复数吗?有何不同? 甲乙两车分别从ab两地相向而行,甲车每小时行80km,乙车每小时行全程的10%,当甲车距离B地的路程与已行的路程之比是1:5时乙车再行全程的八分之三到达A地,求甲车再行多少小时到达B地?甲乙丙 Today we have a lesson in good h_______.We learn a lot about f_____and d_______.To be h_____,we eatToday we have a lesson in good h_______.We learn a lot about f_____and d_______.To be h_____,we eat n____ or r____and some vegetabies.They are healthy 关于机械能守恒以相同的初速度Vo 将物体从同一水平面分别竖直上抛、斜上抛、沿光滑的足够长的固定的斜面的表面上话.三次达到的高度分别是h1、h2、h3,不计空气阻力,则h1、h2、h3的关系是? How much______the pair of glasses?A.am B.is C.are选那一个? 靠卵繁殖后代的动物叫什么 提问 有关机械能守恒什么时候机械能一定不守恒啊 (2.8)(7)(17.5)按照这样的规律,下面该写什么? 翻译 近几年人们的生活方式发生了巨大的变化(take place) 你不会不觉得跑进家来的小松鼠是可爱的吧?改为陈述句 《未来的能源》科幻画应画什么内容?本人急需《未来的能源》科幻画的内容,各位大哥大姐小弟小妹们,帮帮本人,非常急!今天就要,否则死定了!2006年2月9日 xqc110 用肺呼吸,产有硬壳的卵来繁殖后代的动物是什么快! 跑进家来的小松鼠中哥哥掏出手套会怎么说 科幻画,要画未来的东西,画什么呢? 除猫头鹰外,其它大部分猛禽是不是也像鸡那样只能白天活动,晚上看不到东西,睡觉? There are (two glasses of)milk on the table.对括号内提问Millie watches TV for two hours every week.改为同义句改为Millie watches( )( )( )TV every week he had not the courage to tell her the truth.嘛意思好像这句子不符合语法."没勇气" 不应该是“didn't have the courage ”再说have加not 应该是完成时吗 不可数名词是不是前面不能有冠词 那不可数名词可不可以什么都不带 好像He told me news 这样可以吗 we bought one kilo of cheese .(就画线部分提问)we bought one kilo of cheese . (就画线部分提问) cheese did you buy ? Tell her not ___ hurt herself. She wants (one kilo of)meat对括号部分提问 填空:( )like one kilo of oranges and two kilos of grapes.(in de shop)A.what can I( ) for you,sir?B.( ) like one kilo of oranges and two kilos of grapes.A.( ) else?B.No,thanks.How much do they( A.twelve yuan,please.B.Ok.thank you.here's the ( 女童目睹家人在车祸中被烧死 获赔1.尼日尔沙漠发现87具尸体多半为儿童 萌猫每天造访商店 望着橱窗里老鼠或鱼叙反对派称副总理遭解职或为叙政府“化德国派代表团赴美 要求签署协议保证不日本一银行向犯罪集团放贷200万美元意媒曝美国曾监听罗马教皇 美国安局予安倍访问土耳其 助日企获福岛核事故后南非20名白人右翼分子因叛国罪获刑 新闻集团窃听案冲击传媒司法 陪审团打日本一对夫妇因弃婴被捕 交代称已扔掉朴槿惠11月发表施政演说 是否提国情中国留学生勇救日本小学生 安倍将为其澳大利亚使馆被指替美监听亚洲 北京河印度一大客车凌晨起火爆炸 造成睡梦中纽约遭飓风袭击一周年 数千灾民仍无家德国新政府计划提高国民养老金 涨幅可德媒曝光美国全球监控地图 中国北京上土耳其欧亚海底铁路隧道仅运营第一天突德国380公斤女子出门就医 消防队出泰国国会再开赦免法案审议 国内政治博散户必须要掌握的解套七大策略武汉要求清理“黑的”,滴滴:聊过美摄影师拍摄唯美孕妇水下写真照 灵动相爱相杀的P2P平台和投资人清炒菠菜微信营销&微商实战训练营招募(第三期关于泛亚430亿骗局,理财热点也可能宝宝遇到危险时,爸爸们的神反应微信营销&微商实战训练营招募(第三期互联网金融频闹革命,未来到底谁主沉浮这样的露天酒店,你敢睡吗?公司 | 大股东意外套现 安踏\"上P2P平台将死?原因你可能想不到为什么有些人喜欢在朋友圈晒娃?宏观 | 公立养老院严重排队 养老床互联网金融涉足海外,陷阱多多!拒绝花拳绣腿,汽车产业最应关注的科技宏观 | 油耗\"紧箍咒\"越念越紧银联放大招 第三方支付公司违规取消资简单5招:教会孩子“我的衣服自己穿”大势偶像女星雪炫赵贤荣的身材管理秘诀
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘