我是这个网站的新手,但请不要反对我。我只用过一次。
这是我的困境:我有适度的 SQL 知识,但不是专家。下面的查询是很久以前由一位顾问创建的。
在大多数早晨,运行需要 1.5 小时,因为有大量数据。但其他早晨,需要 4-6 小时。我已经尝试消除任何正在运行的作业。我对尝试找出导致此问题的原因感到非常困惑。
任何帮助,将不胜感激。
我已经将此查询分解为 2 个查询,但任何有助于提高性能的方法的提示将不胜感激。
此查询构建了我们的库存交易,以查找我们在任何给定时间点的库存价值。
SELECT
ITCO, ITIM, ITLOT, Time, ITWH, Qty, ITITCD,ITIREF,
SellPrice, SellCost,
case
when Transaction_Cost is null
then Qty * (SELECT ITIACT
FROM (Select Top 1 B.ITITDJ, B.ITIREF, B.ITIACT
From OMCXIT00 AS B
Where A.ITCO = B.ITCO
AND A.ITWH = B.ITWH
AND A.ITIM = B.ITIM
AND A.ITLOT = B.ITLOT
AND ((A.ITITDJ > B.ITITDJ)
OR (A.ITITDJ = B.ITITDJ AND A.ITIREF <= B.ITIREF))
ORDER BY B.ITITDJ DESC, B.ITIREF DESC) as C)
else Transaction_Cost
END AS Transaction_Cost,
case when ITITCD = 'S' then ' Shipped - Stock' else null end as TypeofSale,
case when ititcd = 'S' then ITIREF else null end as OrderNumber
FROM
dbo.InvTransTable2 AS A
这是执行计划。 http://i.imgur.com/mP0Cu.png
这是 DTA,但我不确定如何阅读它,因为建议是空白的。那不应该说“创造”吗? http://i.imgur.com/4ycIP.png