ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQL Server2000中执行一个SQL, 在lock上发现自己锁自己

SQL Server2000中执行一个SQL, 在lock上发现自己锁自己

原创 Linux操作系统 作者:tolywang 时间:2010-12-15 15:34:04 0 删除 编辑
很老的一个数据库, SQL SERVER 2000 SP4,   执行一个查询SQL的时候(查询SQL中有加入nolock), PID=128,   在lock session 上查看
发现 128 的session 是blocked ,  同样还有另外一个也是 128 的session 状态为 blocking ,  是否是多线程导致的自己锁自己的情况 ?
运行时间达到 20多秒 。 但是在SQL后面加入 option (maxdop 1)  速度就变得非常快, 具体是什么原因 ?  


SELECT  
'004' AS MSGFN,
'OB20031120' AS AENNR,
b.climat AS IDNRK,
'L' AS POSTP,
CONVERT(INT,b.SOITMNUM) AS POSNR,
b.ordqty AS MENGE_C ,
'X' AS SANFE
FROM purchaseordersitem a (nolock),purchaseordersitemdetail b (nolock)
WHERE  a.mesgid='0a5dc698-6cc4-49bd-ab0b-e33121f6ec44'
AND  a.ordnum='20058439390'
and a.itmnum='1'
AND  a.mesgid= b.mesgid
AND  a.ordnum=b.ordnum
and a.itmnum=b.itmnum
and a.highlevel IS NOT NULL
AND  not exists (select * from purchaseorderscomponent(nolock)
     where climat=b.climat
     and rdnum='20058439390'
     and mesgid='0a5dc698-6cc4-49bd-ab0b-e33121f6ec44'
                                        and itmnum='1'
     and ((ATTRIBNAME='InSystemBox'and ATTRIBVALUE='N')
                                               or (ATTRIBNAME='PartType'and ATTRIBVALUE='OVERPACK')
                                             )
                 )
ORDER BY POSNR

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/35489/viewspace-681902/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle , MySQL, SAP IQ, SAP HANA, PostgreSQL, Tableau 技术讨论,希望在这里一起分享知识,讨论技术,畅谈人生 。

注册时间:2007-12-10

  • 博文量
    5595
  • 访问量
    14695370