我有一個SQL查詢需要7分鐘+才能返回結果。我試圖儘可能地進行優化,並且執行計劃在哈希匹配(總計)上損失了82%的時間。我已經做了一些搜索,看起來像使用「EXISTS」將有助於解決,但我還沒有弄清楚查詢的語法使其工作。以下是查詢:優化SQL查詢以避免哈希匹配(Aggregate)
select dbo.Server.Name,
dbo.DiskSpace.Drive,
AVG(dbo.DiskSpace.FreeSpace) as 'Free Disk Space',
AVG(dbo.Processor.PercentUsed) as 'CPU % Used',
AVG(dbo.Memory.PercentUtilized) as '% Mem Used'
from Server
join dbo.DiskSpace on dbo.Server.ID=DiskSpace.ServerID
join dbo.Processor on dbo.Server.ID=Processor.ServerID
join dbo.Memory on dbo.Server.ID=dbo.Memory.ServerID
where
dbo.Processor.ProcessorNum='_Total' and dbo.Processor.Datetm>DATEADD(DAY,-(1),(CONVERT (date, GETDATE()))) and (dbo.Server.Name='qp-ratking' or dbo.Server.Name='qp-hyper2012' or dbo.Server.Name='qp-hyped' or dbo.Server.Name='qp-lichking')
Group By dbo.server.name, Dbo.DiskSpace.Drive
Order By Dbo.Server.Name, dbo.DiskSpace.Drive;
如何減少/消除使用EXISTS的連接?或者如果有更好的方法來優化,我也爲此而努力。謝謝