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

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

编辑:说三道四文库 发布时间:2017-02-19 10:43
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
HTML5发展慢热 开发者热情不减 NimbleBit孪生兄弟创始人:最后悔没有专注和扩大品牌 将对Windows形成挑战:谷歌在Chrome OS中默认支持Office 微软的企业社交大动作:Yammer发布移动SDK 谷歌开源Gumbo:纯C语言实现的HTML5解析库 AMD发布APPML源码,构建clMath库 【观察】3个月,每天增加52台,又一家云企业跻身十万台服务器俱乐部 感受华为IT业务的实力 小米雷军:我为什么做红米? GitHub上线Trending功能,帮你轻松找到有潜力的开源项目 如私人秘书:谷歌搜索将变得更加个性化 微软将于10月17日正式发布Windows 8.1 Google推出在线教育C2C平台Helpouts 技术人员组团参加SDCC 2013的十个理由 继BAT之后 第四大巨头是谁 如果传统IT部门真的消亡,你该何去何从? 闪存突袭,混合储存是否已步入黄昏 Cloudera发布Hadoop开源组件Sentry:提供细粒度基于角色的安全控制 我从其他Shell脚本中学到了什么? 10个调试和排错的小建议 机器学习的时代来临,人类应该做点什么? 云端测试破1500万 Testin已为开发者省2亿 智能腕表inWatch:已发售近3600台 Bingo!微软证实Windows 8.1将捆绑安装Skype IBM宣布收购以色列网络安全公司Trusteer 约10亿美元 如何才能运作好一个开源项目? 为什么JavaScript有能力成为未来企业级编程语言? Red Hat CEO:拥抱开源 拥抱克隆 小米手机-HAXLR8on硬件黑客马拉松 开团了! 移动周报:雷军做红米的N个理由 Pangea Software CEO:08年App Store游戏降价大战的真相 请教:谁知道自动控制原理根轨迹乃试图。。,的算法? 我的AOUTOCAD总装不上??? 爱恋是什么东西?是好人就来看!!! 新闻组(NNTP)怎么用? 为何我用 Delphi写的 MDI Child Window关闭后无法打开? 为什么这样画不行呢? 语句char a='\72'则变量a包含几个字符 急,不难的问题(有代码) 问一个幼稚的问题,delphi6.0分为那几个版本,你们都用的哪一个。 呵呵,下网了,今天捞了150多的专家分,太少了~~,明天在我星期5发布的帖子里给大家分,每个人大概都有10分左右吧~~ 请问各位,现在什么版本的LIUX比较好,你们一般用那种? 快毕业了才心动!怎么办? 为什么我的可用分越来越少,参与分加得少,怎么回事啊 快毕业了才心动,怎么办? 有什么办法可以加快ACCESS的速度 快毕业了才心动~怎么办? 请问设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值是多少? 我下载了tinyDB 2.8,需要注册怎么办? 高价寻求软件开发(5000.00元报酬) 网页填写提交表单时经常出现停顿,怎么回事? 111高价寻求软件开发(5000.00元报酬) 各位大虾,深圳那儿买书可以打折? putao请进 双服务器的网络连接问题,请进来看看。 pb7的exe连接sql server2000真难呀,我都弄了两周了!!!!!!!!!!还没解决!!!!??? 怎样响应鼠标在对话框上画图啊? 怎样访问局域网内的机器? asp+sql的查询! 有关MIDAS的问题,请看http://www.csdn.net/expert/topic/374/374719.shtm 紧急!!如何使用ADO创建数据库及表(zwjmouse) 哪位大侠能提供一个c语言写的俄罗斯方块的有注释的源程序(高分) 一段可以冒充QQ上线,下线的源代码,支持最新版0710B 有关于Delphi开发局域网数据库系统的书籍或者资料吗? 请问由mscomm发出的数据是什么格式,单片机怎么识别?》》》 求教??? 请问是否有快速建立二叉树的方法 请教确认提交页面部题 Cannot open "Javac.exe"--菜鸟问题 请问怎么样实现Date的加减呢?? 怎样得到下一天的日期 前段时间出差,最近有忙着考研,没时间上网,散分 确认页面问题。 AfxMessageBox话框标题问题 不是我重复,只是这个问题让我发疯,旦求解决这个问题,死而无怨 smtp认证发信的源代码 在DLL中如何知道自己父进程(ParentProcess)的路径和文件名? cview里的precreatewindow和cframewnd的precreatewindow应该调用那个? 如何在dw4中给已做好的FLASH动画加上超链接? 关于Jmail组件的问题! 袁飞请进! redhat linux下jbuilder安装问题!!!帮帮忙!! 在包装上写 kg与kgs都有,究竟哪一个标准? 分数次方一问:x的m分之n次方就是x的n次方再开m次根,可不可以先开方再乘方?原因? 两个圆的直径分别为4分米和2分米,它们的半径比是(),周长比是(),面积比是() 50 gallons?50 gallon?10 kg?10 kgs?哪个对? 单位km是什么意思 两个圆的半径分别是3分米和4分米, 这两个圆直径比是(),周长比是(),面积比是()在线等 2009五年级下册语文期末试卷 km 是什么单位 1.分解因式:5a^n+1-10a^n= 2.3^2012-4×3^2011+10×3^2010能被7整除吗?为什么?请尽快!很急,明天要交作业了! 2009年五年级下册语文期末试卷要2009年的 KM是什么单位名称? 【分解因式】3^2011-3^2010-3^2009能被5整除吗?为什么? Word文档:10的5次方怎样打? 25度时,100ml 0.4mol/L的盐酸与等体积0.6mol/L的NaOH溶液混合后,溶液的PH值等于多少 3^2012-4*3^2011+10*3^2010能否被7整除. 2009年语文五年级下册期末试卷急死人了! KM/H 是什么单位?是 公里/小时 用0.1mol/L的NaOH溶液滴定100ml0.1mol/L的HCl时.如果滴定误差在±0.1%以内,反应完毕后溶液的pH范围是?(已知lg2=0.3) 把一个圆平均分成若干等份后,拼成一个周长为20.7分米的长方形,这个圆的面积是多少平方分米? 在25℃时,100ml 0.6mol/L的盐酸与等体积0.4mol/L的氢氧化钠溶液混合后,溶液的pH值等于多少? 一个半径是5分米的圆,如果半径增加1分米,那么周长增加( )厘米,面积增加(一个半径是5分米的圆,如果半径增加1分米,那么周长增加( )厘米,面积增加( )平方分米. 若用1MOL/L的H2SO4滴定1MOL/L的NAOH溶液10ML时,在滴定的过程中出现误差,如1(多滴定了1滴H2SO4溶液注约0.5ML),2(少滴定了一滴H2SO4溶液)等溶液充分的反应后,两溶液的氢离子浓度之比为多少? 一个圆的半径是3分米,如果半径增加1分米,则周长增加多少分米,面积增加多少平方分米拜托各位大神 一个金属块浸入满水的溢水杯中,从溢水口溢出水的质量为0.1KG,求金属块受到的浮力.(预习作业, 室温下用0.1mol/L氢氧化钠溶液分别滴定20毫升0.1mol/L的盐酸和醋酸下列说法正确的是V(NaOH)=10ml,c(CH3COO-)/c(CH3COOH)大于1V(NaOH)=20ml,c(Cl-)小于c(CH3COO-)图中A点(黄色)与B点的意义是 kg.n是什么单位 半径( ) 直径(6)分米 周长( ) 面积( ) 求大神指导.浓度为0.1mol/l的氢氧化钠滴定同浓度一元弱酸HB,(pka=4.0)误差正负0.1%ph突越7.0-9.7,若弱酸pka3.0,则突越范围为……求指导求指导…… kg/(kW·h)是什么意思这是油耗单位 将重力为19.6N的铝球慢慢的浸入在一个盛满水的溢杯中,从溢杯中溢出了9.8N的水,铝球受到的浮力为()N 怎样配制氢氧化钠标准滴定溶液c=0.1mol/L 有没有规范单位表示方面的标准?比如千克用kg,千瓦用开kW. 将一重为60N的物体,放入一盛满水的溢水杯中,从杯中溢出了10N的水,则物体所受到的浮力是多少?急用吖~知道的帮帮忙吖~ kgs是什么单位 五年级上册英语期末试卷的答案 将重为2N的物体,放入盛有水的溢水杯中,从杯中溢出0.5N的水,则物体受到的浮力为 ( )将重为2N的物体,放入盛有水的溢水杯中,从杯中溢出0.5N的水,则物体受到的浮力为 ( )A.一定为2.5 N B.一定为0.5 磁感应强度的单位KGS/A与T之间怎么转换?KGS/A 是 千高斯/安 ,我以前都不知道磁感应强度还有这个单位的. 五年级上册英语期末试卷和答案 在25℃时向VmLpH=a的HCl溶液中加入pH=b的NaOH溶液10VmL在25℃时,向VmLpH=a的HCl溶液中加入pH=b的NaOH溶液10VmL,所得混合溶液中c(cl-)=c(Na+),求此时(a+b)为多少? word中a的2次方要是想在2下面再打个2该怎么打就是在a的右上角和右下角同时打上2,怎么打 如果一个圆的半径由1分米增加到3分米,它的周长要增加( )分米,面积要增加( )平方分米, 为什么PH=1的HCL与PH=13的NAOH混合 溶液PH=7 怎么算出来的? 2的x次方怎么打?是x的次方 HCL溶液与NaOH溶液(0.1mol/L)相互滴定的pH突跃范围是多少?HCL溶液与NaOH溶液(0.1mol/L)相互滴定的pH图余额范围是多少?如果要求终点误差不超过0.2%,甲基橙和酚酞是否都可用作指示剂? 一个最简真分数,分子与分母相差2,分子与分母的最小公倍数是63,这个分数是( ),一个最简真分数,分子与分母相差2,分子与分母的最小公倍数是63,这个分数是( ),它与1相差( ). 我要2009至2010年的8年纪语文期末试卷答案 体重用kg做单位还是用N作单位.. 如果直径是14分米,半径是多少?周长是多少?面积是多少? 语文S版2009年-2010年四年级上册期末试卷,请问谁有? 2011年小学六年级语文上册期末试卷 周长为3.14的圆,它的直径、半径、面积是多少? 有4gNa2O2和Na2CO3的混合物溶于水,与100ml物质的量浓度为1mol/L的盐酸恰好完全反应,蒸干溶液,最终得到固体的质量为? 例如:50ml 1mol/l NAOH溶液中的1mol代表什么?RT kg/n什么意思 在A、B、C、D四个烧杯内分别放入0.1mol的钠、氧化钠、过氧化钠、氢氧化钠,然后各加入100ml水,搅拌使固体完全溶解,则A、B、C、D的质量分数大小顺序为:为什么是D 不溶于水的实心球重12N,体积为1.5dm²,若把它轻轻地放入足够大且装满了水的桶里,求:(g取10N/kg)(1)球受到的浮力的大小(2)从桶中溢出的水的质量的大小 将0.65g锌加到50ml 1mol/L的盐酸中 若反应完成后溶液体积仍为50ml,这时溶液中氯化锌的浓度和盐酸的浓度各为多少 保留三位有效数字 WORD里10的负几次方怎么打? 有8g过氧化钠,氧化钠,碳酸钠,氢氧化钠的混合物与200g质量分数为3.68%的盐酸恰好完全反应,蒸干溶液,最- -,怎么变成这样了,算了, 把重为10N、体积为1.2dm³的空心铅球,轻轻地放入水中,铅球静止后受到的浮力多大?(g取10N/kg)如题.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn