我在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