Performance Dashboard Reports 中的 System CPU Utilization 圖中再點進去看 recent_cpu.rdl 報表時,
會發生「A data source instance has not been supplied for the data source 'CHECK_DEPENDENCIES'.」的錯誤!
要如何解決呢?
在 Performance Dashboard Reports 中的 System CPU Utilization 圖中再點進去看 recent_cpu.rdl 報表時,會發生「A data source instance has not been supplied for the data source 'CHECK_DEPENDENCIES'.」的錯誤!
在 Profiler 之中可發現它是執行以下的SQL,
exec sp_executesql @stmt=N'exec msdb.MS_PerfDashboard.usp_QueryStatsRecentActivity @WithActivitySince'
,@params=N'@WithActivitySince NVarChar(max)'
,@WithActivitySince=N'2014/7/7 下午 01:21:59'
而執行的錯誤是,Error converting data type nvarchar(max) to datetime.
因為 usp_QueryStatsRecentActivity 的參數是DateTime,所以'2014/7/7 下午 01:21:59'無法轉成 DateTime。
而 @WithActivitySince 的參數值是又從 performance_dashboard_main.rdl 中傳過來的,內容如下,
<Drillthrough>
<ReportName>recent_cpu</ReportName>
<Parameters>
<Parameter Name="WithActivitySince">
<Value>=min(Fields!EventTime.Value, "CPU_UTILIZATION_HISTORY")</Value>
</Parameter>
<Parameter Name="version_string">
<Value>=Parameters!version_string.Value</Value>
</Parameter>
</Parameters>
</Drillthrough>
如果我們讓 '2014/7/7 下午 01:21:59' 變成 '2014/7/7 01:21:59' 應該就可以順利被轉成 DateTime吧!
所以,就將它加上Format,就可以了! 如下,
<Value>=format(min(Fields!EventTime.Value, "CPU_UTILIZATION_HISTORY"), "yyyy/MM/dd hh:mm:ss")</Value>
參考資料
dbe | Performance Dashboard 2012
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^