もっと速くするために、次のクエリを書き直す際に助けが必要です。結局のところ、私が望むのは、対応するメトリックを持つサーバー(キャプション)ごとに1行です。 MaxとAvgを削除すると、サーバーあたり1600行が得られ、3秒で実行されます。それらを追加すると、1台のサーバーのデータを計算するのに約3分かかります。サーバーの総数は11,000以上です。これをもっと速くするための助けが必要
SELECT
Nodes.Caption, COUNT(DISTINCT CPUMultiLoad_Detail.CPUIndex) AS CPUCount,
Max(CPULoad.MaxLoad) as MaxCPU, Avg(CPULoad.AvgLoad) as AvgCPU,
Round((CPULoad.TotalMemory/1073741824),0) as MemCount,
Round(Max(CPULoad.MaxMemoryUsed/CPULoad.TotalMemory * 100),2) as MaxMem,
Round(Avg(CPULoad.AvgPercentMemoryUsed),2) as AvgMem
FROM
Nodes
INNER JOIN
CPUMultiLoad_Detail ON Nodes.NodeID = CPUMultiLoad_Detail.NodeID
INNER JOIN
CPULoad ON Nodes.NodeID = CPULoad.NodeID
WHERE CPULoad.Datetime >= DATEADD(month,datediff(month,0,getdate())-1,0)
and CPULoad.Datetime < DATEADD(day,datediff(day,0,getdate()),1)
GROUP BY Nodes.Caption, CPULoad.TotalMemory
はテーブルレイアウトとインデックスとPKとあなたが既存のインデックスを変更/追加するために許可されているかどうかを示し – objectNotFound
あなたはまた、実際の実行計画を投稿することができますか? –
cpuLoad.totalMemoryの回りに集計関数(SUM?)を使用する予定ですか? – Beth