1.问题描述分析
此超时SQL 在5.16--5.18日的超时日志次数中,出现最多,排第1,
此更新sql里用的In 子查询,in查询的集合元素数量200个,导致查询慢
2.解决方案
将In 子查询改为临时表或表值参数 后 join ;这种方案之前修改了很多,效率很好,建议修改。
3.超时SQL
UPDATE QE
SET QE.LockGuid = '6cae2d0bd8714a2bb4e027796f6b2b59', QE.QueueState = 1, QE.ExecTime = getdate()
FROM RB_Ebay_Listing_Queue_V2 QE
WHERE QE.QueueID IN (
select top (200) Q.QueueID
FROM RB_Ebay_Listing_Queue_V2 Q WITH (NOLOCK)
INNER JOIN RB_Ebay_Listing_Basic_V2 B WITH (NOLOCK)
ON B.CustomerID = Q.CustomerID
AND B.ListingBasicID = Q.ListingBasicID
AND B.OrderSourceID = Q.OrderSourceID
AND B.SiteCode = Q.SiteCode
WHERE Q.QueueState = 0
AND Q.QueueType =6
)
PARAMS:
MESSAGE:执行超时已过期。完成操作之前已超时或服务器未响应



参考 解决方案 修改,
此超时SQL 在5.16--5.18日的超时日志次数中,出现最多 3389次,排第1,尽快优化