我在SQL Server上有一个需要优化的SQL查询。 运行它需要将近16分钟。在SQL Server上优化SQL查询
SELECT DISTINCT DeptNo,
BrandDesc,
MfgDesc,
CountOfActiveSKUs =
COALESCE((SELECT COUNT(*)
FROM dbo.SKU k
WHERE k.Status = 'A'
AND k.BrandDesc = s.BrandDesc
AND k.MfgDesc = s.MfgDesc
AND k.DeptNo = s.DeptNo),
0)
FROM dbo.SKU s
ORDER BY BrandDesc
我想出了以下内容,但它似乎并不抓住它有CountOfActiveSKUs = 0
SELECT DISTINCT DeptNo,
BrandDesc,
MfgDesc,
CountOfActiveSKUs = COALESCE(Count(*), 0)
FROM dbo.SKU
WHERE Status = 'A'
GROUP BY BrandDesc, MfgDesc, DeptNo
ORDER BY BrandDesc
任何帮助表示赞赏记录, 谢谢!
对于记录来说,在select中使用相关子查询几乎总是一个糟糕的选择。请完全停止使用这种技术。因为它是一个性能杀手,而且几乎没有必要。 – HLGEM
@HLGEM同意,谢谢! – Springray