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

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

编辑:说三道四文库 发布时间:2017-04-23 08:22
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
我伙呆,硅谷高级工程师年薪16.5万美金起 羡煞旁人的Supercell:Clash of Clans卫冕营收榜冠军 谷歌第三财季利润增36.5% 但摩托罗拉业务继续亏损2.48亿 针对应用开发者的几点建议:注意特征蔓延、加大用户评审…… Ubuntu中文衍生版UbuntuKylin 13.10正式发布 Web设计师和Web开发者之间的区别是什么? 在政府退出后,Google的量子计算机项目面临危机 SQL on Hadoop的最新进展及7项相关技术分享 联想:欲收购黑莓,还能在智能手机领域创造PC神话吗? 谁说Android开发者的收入依然不行? 代码可维护性的神秘面纱 MDCC 2013首批演讲嘉宾名单出炉 议题即将披露 MDCC2013:公开征集讲师和演讲主题 移动周报:IT人必看!9大最火移动开发技能 OpenStack H版发布 盘点2013:21个最火的云初创公司 从摩尔定律到原子计算,2013诺贝尔物理学奖背后的计算机技术 黄峻:从自制纸板键盘的孩子到Adobe技术经理的故事 Web开发正被颠覆 开发者需认清五大新现实 最发人深省的亚马逊面试题,你会如何作答? 所见即所得:8款实用HTML5开发框架 Groovy最受欢迎 Java系开发者更偏爱其他JVM类语言?(图) [开源专访]iNews创始人赵戈戈:36小时开发的PHP版HackerNews 使用Spring框架的12个开源项目 甲骨文仍旧“憎恨”开源软件 开发者应该避免使用的6个Java功能 不可小觑的Web开发编码规范 软件工程师如同花园园丁,清理代码就好比拔草! 智能硬件元年 60+硬件展商引爆MDCC 2013 深藏功与名:Supercell CEO Ilkka Paananen访谈录 Google Ideas小工具捍卫言论自由 vc是否适合进行网络编程?烦请指教 网络自由人,谢谢你提醒我要小写,已经给你加20分。。。。 如何设置控件的ImeMode 属性? ?????@@@@@急﹗急! smtp認証的email可執行程序及源碼 老问题没解决 ,新的又来了!!(关于汉字和英文的识别) VC.net中的运行到光标处到那去了???? 关于简单的拨号连接的问题。 我爱你们,热心的朋友!!! 不好!!!win2k密码忘了! 一个关于打印的简单问题?在线等,急? 有对KYLIX熟悉的吗,请发表一些东东撒:) 如何在程序内屏蔽掉Alt+Tab这组系统功能键? 各位节日快乐!!! 请各位搞VxWorks 的高手指导一下菜鸟!一定进来看看!谢谢! C/s结构,从一个c端发一些数据(如报表等)到另一个c端,接收到后最好能返回一个成功消息,有什么好的方案么 我受不了,救命啊 如何使得树形控件中的一个没有子项目的目录前面显示为减号或不显示'+'和'-'? 如何实现将页面的内容导入到word中?在线等,急! 怎么回事?主机名可以CONNECT到SQL服务器,用IP地址不行了 打印的问题!!!! pb8与win2000server 小小问题?如何得到窗体右上角关闭,最大化,最小化的句柄??? 多少分才能有两绿三角?多少分才能有一个红星? 哪位同志知道网站的风格像 win xp? 请问哪里可以下载xml spy的中文帮助文件? 请教如何将.cab包解开 50分﹕HELP!!!為什么我的report分發后﹐項目全錯位了﹐應如何解決﹖ 各位,在工程中怎样用资源文件(*.res) !!请问如何利用ADO做三层设计? 哪位大哥有vfw.pas的啊?60分相赠 ATL在中国的现状怎样,大家进来说说!!! 如何黑一个网吧~~~ 急:问个初级问题,希望能得到解决 这个论坛不错! 能不能让C盘只读不写啊? 为什么CopyMemory在NT下的效率与在98下的效率不同! cmos密码如何破解 database控件的问题????? 关于if 语句! 急急急...所以的程序一运行报错:This Example Program Can Only Be Run From With The IDE? 我的机器一运行该页面就慢 怎样设置FileListBox1的路径 free,delete ,Free()的区别? 初学网络,从何学起?如何过渡 请问生成EXE文件以后,要把PB下的哪些dll文件拷贝过去,全部都要吗??还是只要拷贝几个就可以,请问是哪几个? 如何实现自动编号(在线等待) 请问如何在使用insert into时同时使用select和values语句?(十万火急) 怎样改变ListView1在详细显示模式下表头的高度(调用小5号字体)? 我用的是TomCat,请大侠们帮我看看这段调用access数据库的jsp程序那里错了!每次都提示“From字句语法错误”! 如何对数据窗口中的内容进行批量修改?急!!!!! 全上海暂无业者,联合起来!!! 据统计,全球每小时约有510000000吨污水排入江河湖海,用科学记数法表示为() 吨. 某工厂排放的废液中. 我画圈圈的那个有什么意义吗?每次做这种题目都要写吗?为什么写 据统计,全球每分钟约有8500000t污水排入江河湖海,求一天全球排入江河河海的污水共有多少吨?(保留4位有效数字) 有多少排放污水的工厂 立春是什么时候 据统计,全球每小时约产生5.1*10^8吨污水,排入江河湖海污染水源,那么一年约有多少吨污水产生(一年按365天计算) 求 工厂排放的污水中最主要含的是什么 热化学反应方程式,用不用写加热或点燃?用不用写气体,沉淀符号? 四.你能分别写出含有“春夏秋冬”这四个字的诗句吗?(诗题.作者都要)一定要有诗题和作者啊! 什么工厂需要排放污水 什么时候立春3号还是4号 描写春夏秋冬的四个字的词语越多越好 杜牧在《赤壁》中借物兴感,评论赤壁之战胜负的诗句是“_____________,__________ __”. 皮肤上比较敏感的部分 是什么地方? 含“春夏秋冬”这四个字的诗句要写出诗题和作者 《赤壁》中重新评价赤壁之战的句子是什么? 核聚变反应式! 关于春夏秋冬的古诗(全诗)无 《赤壁》中评价赤壁之战的句子是什么? 聚变反应到底是怎么进行的? 含有 春夏秋冬 这四个字的诗句要有诗题要有作者 评论赤壁之战胜负的诗句 什么是核聚变反应? 变电站10kV母线的一组电容器击穿一只,怎样处理合适 英语翻译1北面而事之2鼎足之形成矣3其实汗贼也4割据江东,地方数千里5彼所将中国人不过十五六万6初一交战,操军不利,引次江北7今战士还者及关羽水军精甲万人8荆州之民附操者9且将军大势 形容看字面就知道其意思的四个字词语 澳洲墨尔本目前气候因为月底要去澳洲一趟,大概一个月的样子,想问下最近澳洲墨尔本的气候怎样,要穿怎样的衣服? 热化学反应方程式中加不加反应条件? 一个成语:形容看到这个词的字面 就能知道它是什么意思好像人家讲座的时候经常用到 比如:“**(任意一个词)****(我问的这个词)就是什么什么意思(前面任意一个词的意思) 墨尔本到底是什么气候?不同的资料有不同的说法 日本是怎样对待先进的外国文化的,日本对外国文化的这种态度对日本历史产生了什么影响 同样的意思可以用不同的词表达. 3p空调要用多大的空开 日本国的法律在什么情况下对外国人生效? 核聚变反应是什么? 太阳是早上离地球近,还是中午? 3p空调用多大的空开?我家的柜机是大金大3P的,空调不用插头插座,直接接空开,那么空开需要多大的?2P25A的够么?还是需要2P32A的?该如何接线? 国外净水器排废水吗 排放比例是多少 谁知道 解释下面这几首古诗的意思使至塞上(节选)征蓬出汉塞,归雁入胡天.大漠孤烟直,长河落日圆. 我的朋友写了诗,请诗歌爱好者给评论一下,并提出修改意见.愁绪 请不要再为我采颉想思 它已在我心里飞籽成林 下雨的黄昏 等在路口撑着的就是你买的那把小花伞 十月的细雨 不曾和我相约 介绍几首好听的外国歌曲,仅限英文,国外英语为主的国家,韩国,日本的.不要摇滚,就是能感动人的那种,或是旋律很好听的,欢快点也可以. 谁有亚洲气候类型分布图啊,要十分清晰的 关于诗歌的问题,懂诗的人进我国的古诗的形式(如七律 诗)有哪些我国的古诗的内容(如田园诗)有哪些 好词好句,一段段分好,一天4个好词带意思;一段好句(60到100个字).要20段,4段1分.快, 什么是进线备自投,母线备自投,变压器备自投 除了热化学方程式不标反应条件,其他方程式都标吗? 求韩剧,如像(来自星星的你),继承者们,一定要好看,青春偶像剧,男女主要帅.剧情好看 表示很伤心的成语? 热化学方程式条件往哪标?等号上?还是哪里? 关于春天的好词好句好段. 一额定电压为10KV的静电电容,其容抗为10.5Ω,接在6KV母线上,电容器在额定电压下供给母线的无功功率? 2010年立春时间啊啊啊啊 求像来自星星的你一样热播好看的韩剧,除了继承者们 家用空气开关总控多大的好呢?家用空气开关总控多大的好呢,一个5100W的空调,电磁炉2个,电视3台,电脑2个,冰箱一个,冰柜1个常用照明灯晚上同时常开的5个左右,总控用多大的空开好呢,最好带漏 08年立春具体时间2008年的立春时间是啥时啊? 好词好句好段(急需、急!)词四个字的;句尽可以短点的;段不超过30字.请在26、27日回答问题,28日结束(由于我是新弄的,还没有积分,好词好句好段各20个.请在26、27日回答问题,28日结束( 空气开关大小问题:比如我的负载是4000W,220V的市电,我选用的空开就应该是C20的,那么我选择C32的话是不是不会起到过流保护呢?请说明原因, 工厂排放出大量废水进行处理最好办法是什么? 急需好词好句急需用!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘