결과를 반환하는 데 7 분이 걸리는 SQL 쿼리가 있습니다. 나는 가능한 한 많이 최적화하려고 노력하고 있으며 실행 계획은 해시 경기 (집계)에서 82 %의 시간을 잃어버린다. 일부 검색을 수행하고 "EXISTS"를 사용하여 해결하는 데 도움이되는 것처럼 보이지만 작동하도록 쿼리의 구문을 파악하지 못했습니다. 다음은 쿼리입니다.해시 일치 (집계)를 피하기 위해 SQL 쿼리 최적화
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를 사용하여 조인을 줄이거 나 제거하려면 어떻게합니까? 또는 최적화 할 수있는 더 좋은 방법이 있다면, 나는 그것에 대해서도 마찬가지입니다. 감사합니다