很老的一个数据库, 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
发现 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博客 ” ,链接:http://blog.itpub.net/35489/viewspace-681902/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-681902/
本文讨论了一个老旧的SQL Server 2000 SP4环境中执行查询时遇到的锁竞争问题。在一个包含nolock提示的查询中,观察到了PID为128的会话被阻塞,同时另一个PID为128的会话处于阻塞状态。通过添加option(maxdop 1)显著提高了查询性能。

被折叠的 条评论
为什么被折叠?



