午後は Stack Overflow の善良な人々。
SQL の知識を使って達成する方法がわからないことをやろうとしていますが、これから何をしたいのか明確にわかっているので、これが人々にとって意味のあるものになることを願っています。
次のような perfmon ディスクの結果があります。
DatabaseName ObjectName CounterName InstanceName Server Average
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server1 13.616
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server2 17.508
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server3 12.775
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server4 13.148
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 Server5 10.091
これらは、このクエリに基づく行の例です。
SELECT
e14_db.DatabaseName AS [DatabaseName],
d.ObjectName,
d.CounterName,
d.InstanceName,
d.Server,
AVG(Value) * 1000 AS [Average]
FROM E14_Perfmon_MBX AS d
INNER JOIN E14_Databases AS e14_db
ON e14_db.LogFolderPath = d.InstanceName
WHERE d.ObjectName = 'logicaldisk'
AND d.CounterName = 'avg. disk sec/read'
AND d.DateTime > (DATEADD(hh, -4, GETDATE()))
AND d.Value < 1
GROUP BY d.ObjectName, d.CounterName, d.InstanceName, d.Server, e14_db.DatabaseName
ORDER BY e14_db.DatabaseName, d.Server
私が欲しいのはこれです:
DatabaseName ObjectName CounterName InstanceName Server1 Server2 Server3 Server4 Server5
DAG1DB01 logicaldisk avg. disk sec/read d:\mountpoints\DAG1DB01 13.616 17.508 12.775 13.148 10.091
どうすればこれを達成できるか知っている人はいますか?基本的に行を自分自身に適用しますか?
説明が必要な場合は、お気軽にお尋ねください。
ありがとう!