SQL Server エージェントには、ジョブを監視するためのパフォーマンス オブジェクトとカウンターがあります。Windows Performance Monitor アプリケーションを使用すると、いつでもデータを確認できます。
しかし、gwmi Win32_PerfFormattedData_SQLSERVERAGENT_SQLAgentJobs
一部のサーバーで PowerShell を使用しようとすると、インスタンスが返されません。WBEMTest と wmic.exe でテストした場合と同じ結果です。
実行するtypeperf -qx
と \SQLAgent:Jobs(_Total)* メトリックが多数表示されますが、WMI クエリを使用してWin32_PerfFormattedData_SQLSERVERAGENT_SQLAgentJobs
またはWin32_PerfRawData_SQLSERVERAGENT_SQLAgentJobs
クラスから結果を取得するにはどうすればよいですか?
更新:うーん...これは、SQL Server 2016 CU1 または SP1 CU2 可用性グループ インスタンスをクエリするときに問題になる可能性がありますが、一部のサーバーでは機能しますが、他のサーバーでは機能しません。更新を適用した後に動作を停止したように見え、システムを再起動した後でも、カウンターはインスタンスを返しません。スタンドアロン インスタンスでは常に期待どおりのデータが返されるため、この問題をまだ再現できていません。
PS C:\> gwmi Win32_PerfRawData_SQLSERVERAGENT_SQLAgentJobs | ft -AutoSize Name,Successfuljobs,FailedJobs,Activejobs
Name Successfuljobs FailedJobs Activejobs
---- -------------- ---------- ----------
Others 0 0 0
Alerts 0 0 0
Schedules 20 106 0
_Total 20 106 0
また、これらのカウンターはsys.dm_os_performance_countersビューでは利用できないことに注意してください。