07 March 2007

SQL Server 2005 Performance Dashboard Reports -- Now Available!

Have you ever noticed one of your SQL Server instances running unusually slowly?

Have you had difficulty quickly identifying what areas could be affecting its performance?

One of our customer support Escalation Engineers, Keith Elmore, specializes in understanding these types of problems.  He has worked with customers all over the world on diagnosing their toughest and most critical performance bottlenecks.  Keith has put together a set of Reporting Services reports that will help DBAs diagnose potential performance problems.  These reports were designed to leverage the new Custom Reports functionality in SQL Server Management Studio (Service Pack 2).

The SQL Server 2005 Performance Dashboard Reports only use Dynamic Management Views and Catalog Views.  They do not poll performance counters from the OS, nor do they store a history of your server's performance over time.  These are very light-weight reports that will help diagnose performance problems as they are occurring.

I encourage you to check them out.  Feel free to comment here with your thoughts and questions.

SQL Server 2005 Performance Dashboard Reports:
http://www.microsoft.com/downloads/details.aspx?FamilyId=1D3A4A0D-7E0C-4730-8204-E419218C1EFC&displaylang=en

Paul A. Mestemaker II
Program Manager
Microsoft SQL Server Manageability

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Those ever productive folks at MS « Getting used to an upside down life said:

PingBack from http://mostgrandadventure.wordpress.com/2007/03/08/those-ever-productive-folks-at-ms/

07 March 07 at 8:44 PM
# EXEC dbo.LongTermMemory__Archive said:

Keith Elmore, an escalation engineer at Microsoft, has created a "Performance Dashboard" for SQL Server...

08 March 07 at 3:17 AM
# Juan Alvarado said:

Excellent job .. it's very useful for look where is the problem.  One feature that i suggest is if you can indicate the T-SQL that have table scans or index scans in a dashboards, its a good information when have performance problems.

08 March 07 at 12:16 PM
# Jerry Hung said:

Great report

I wish MS releases more of these for free

I like the "Missing Index" best thus far

but the word "Dashboard" just turns me on :P

or Business Scorecard

15 March 07 at 11:21 AM
# Tecnologie .NET (Dotnet): Sharepoint, BizTalk e .NET said:
15 March 07 at 5:35 PM
# Matt said:

This is awesome stuff!!!

28 March 07 at 2:16 PM
# Rick said:

I'm getting an error message when i try and open the reports now because of the line:

convert(bigint, datediff(ms, login_time, getdate()))

inside usp_Main_GetSessionInfo.

The difference between login_time and getdate() is more than 24 days so the datediff fails.... i get the following message:

Difference of two datetime columns caused overflow at runtime.

thanks.

02 April 07 at 1:58 PM
# Mike said:

The dashboard was working splendid until this morning with the following error:

Difference of two datetime columns caused overflow at runtime.

Have reloaded the msi package (local server/client) and deleted sp's/functions and re-ran setup.sql script on remote server with the same results.

Any suggestions appreciated..

02 April 07 at 6:10 PM
# David said:

Because DATEDIFF returns and int once you have connection that is more than 24 days or so old it will overflow the dattype if you modify the procedure so caluclates the differnce in minutes first converts this to milliseconds then add the number of minutes diffrence onto the start time and then calculate the remianing number of milli seconds it will work so basicalyy if you modify trhe offending line

sum(convert(bigint, datediff(ms, login_time, getdate()))) - sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

to

sum(convert(bigint, CAST ( DATEDIFF ( minute, login_time, getdate()) AS

   BIGINT)*60000 + DATEDIFF ( millisecond, DATEADD ( minute,

   DATEDIFF ( minute, login_time, getdate() ), login_time ),getdate() ))) - sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

then it will work

hopes this helps the rest of you who have the same problem.

05 April 07 at 6:58 AM
# SQL Server 開発チーム ブログ said:

マイクロソフト星川です。 先日 SQL Server 2005 Performance Dashboard Reports と呼ばれる新しいツールをリリースしました。 http://www.microsoft.com/downloads/details.aspx?FamilyId=1D3A4A0D-7E0C-4730-8204-E419218C1EFC&displaylang=en

05 April 07 at 9:43 AM
# Ron Landers said:

I have run the setup.sql script and then the performance_dashboard_main.rdl.

I am getting errors when I try to run most the reports.

Errors are:

--"The 'version_string' jparameter is missing a value"

--"The "Report parameter 'sql_handle' was not found"

--"Report parameter 'include_system_processes' was not found"

Any help available on this?

05 April 07 at 4:50 PM
# cori said:

David;

thanks for the fix.  very helpful!

cori

09 May 07 at 1:11 PM
# romeolanuza@verizon.net said:

Did i do it thr right way....!!!!!????? serever management......?????

11 May 07 at 8:35 AM
# daddyev said:

I am getting "The 'version_string' parameter is missing a value" when running the database_overview.rdl

Does anyone have a fix for this problem?  H-E-L-P!!

11 May 07 at 11:47 AM
# Naras said:

Thanks. Good work.

Naras

16 May 07 at 5:54 PM
# Heinrich said:

Hello,

i have a problem when i click on any  blue region in the chart for the SQL CPU utilization on the performance dashboard where you normally would get further infos (reports for the last 15 minutes).

There comes no repport but an Error: Arithmetic overflow error conferting expression to data type datetime.

This happens on two different servers with SQL Server 2005 Enterprise Editions, but all other driil through is functioning. What' s the problem, is it a problem in recent_cpu.rdl or performance_dashboard_main.rdl or in the called stored procedures. Please help, it is a really good tool, but not good when functioning only partly.

Thanks for help

Heinrich

23 May 07 at 9:50 AM
# Lars D said:

I also have problem when I click on the blue region for the CPU (CPU System Utilization), and it happens on only one server, other servers works fine

Following error

---------------------------------

An error has occurred during report processing.

Cannot read the next data row for the data set SESSION_REQUEST_ACTIVITY.

For more information about this error navigate to the report server on the local server machine, or enable remote errors

---------------------------------

Any ideas how to fix it?

Lars

30 May 07 at 3:56 AM
# DKRoul said:

Hi,

I am facing an error saying ‘Arithmetic overflow error converting expression to data type datetime.’ In data base due to my following query.

Then I tried with cast and convert function too, still I got the error.

select   *

 from datetable

where  cast(('May 29 2007  6:30:00:000PM' - endtime) as int) >=2

and  cast(('May 29 2007  6:30:00:000PM' - endtime)  as int)<=3

and  datetable_id  = 102

order by datetable_id  desc

I got this beacause of some bad ‘endtime’ data in datetable for datetable_id   102 : 5465-08-12 12:00:00.000.

But I need to support all type of date here and the table is also huge. So I have this col as indexed.

I thought of to use datediff func here. again I am not sure what will be the performance impact on my query, coz it will diff and convert to int and compare for each of the row.

So can any body suggest how efficiently can i handle this?

Thanks

~DKRoul

30 May 07 at 5:06 AM
# Heinrich said:

Hello,

as i have wrote before (May 23, 2007) i wasn't able to use the Performance Dashboard because of the described  failure. A week later the report functions without changing something. It works fine for some days until 08. June 07, then in the morning i want to look again in the chart for SQL CPU utilization and nothing functions again, but now i get the failure as described from other users, that is: Difference of two datetime columns caused overflow at runtime. I have implemented the fix as described by David, but it doesn't help, i think there must be more bugs in the programming with datetime-conversion etc.

Now again, i am not able to use this fantastic tool.

Does anyone have a fix for this problem? Please help.

11 June 07 at 11:55 AM
# Beatrice said:

No bug.

In my case it was an inconsistency in the language settings between the web server and SQL server (or SQL server user).

Check that the user you're using to browse the reports has british english as a language.

Beatrice.

13 June 07 at 9:48 AM
# Mic said:

Hi,

About the "Arithmetic overflow error converting expression to data type datetime." after clicking the blue-CPU-Line:

This is an conversion error between the main and the recent_cpu report. You can solve this by changing the type of the "WithActivitySince" Parameter from String to DateTime (at the top of the XML file).

19 June 07 at 4:26 AM
# Shahryar G. Hashemi said:

Hi,

I applied the fix as identified above back in May 2007 to my setup.sql script and it was working for a short time.  However now I am receiving the same "Difference of two datetime columns caused overflow at runtime." error.  I have reloaded the fixed setup.sql script on my box and I continue to get the error.  The problem happens when clicking on the CPU utilization graph to see what processes were running on a given server at a specific time.

Can anyone help?

24 July 07 at 7:14 PM
# David said:

I'm getting the parameter issues mentioned by Ron above.  Any help?

28 July 07 at 8:19 PM
# David said:

Nevermind.   Duh...should have read directions.  For others...open through the performance_dashboard_main.rdl which supplies params.

28 July 07 at 8:44 PM
# Randy In Marin said:

The datetime value is days - fractional part is time.  86400000 = 24 * 60 * 60 * 1000 converts days to ms.  This should should avoid overflow here and in most cases.  I have not tried extreme dates - perhaps the difference won't be in the range of a valid datetime?  

CAST(FLOOR(86400000 * CAST(getdate() - login_time as float)) as bigint) -- ms

09 August 07 at 3:16 PM
# Alexander Gladchenko said:

Microsoft SQL Server 2005 Performance Dashboard Reports предназначен для контроля и получения необходимой

14 August 07 at 4:36 AM
# Shahryar G. Hashemi said:

Randy,

I saw your update.  Do you know where I need to do the CAST update?  Also when will Microsoft update the Performance Dashboard?

21 August 07 at 12:29 PM
# Don said:

I'm getting the "Difference of two datetime columns caused overflow at runtime" error when trying to drill down into the Blue SQL Server CPU usage on the main dashboard screen.  I understand the problem with uptime (server has been up for more than 24 days), datediff, and ms but I'm having some problems tracking down where the change from ms to ss needs to be made for this drill down functionality to work again.  I tried a profiler trace, but the only procedure I see executing is the usp_CheckDependencies.  After that I just see a bunch of execute_sql statements.

Any help would be appreciated

27 August 07 at 10:41 AM
# Vipin said:

Any idea if there are any issues while converting from timestamp to big int???

07 September 07 at 10:51 AM
# Shahryar G. Hashemi said:

Hi,

I do where the following change in the datetime difference should be made:

CAST(FLOOR(86400000 * CAST(getdate() - login_time as float)) as bigint) -- ms

I get the error now on any SQL Server environment where connections have been online for more than a month.

Can someone please help me.  Or can you let me know when the Performance Dashboard will be updated?

Shahryar

11 September 07 at 11:10 PM
# Marios Philippopoulos said:

Regarding the "The 'version_string' parameter is missing a value" when running the database_overview.rdl" error.

A quick and dirty fix is to delete all references to version_string in database_overview.rdl. Version_string (1.0) is the version of DashboardReports functionality. Not really useful to have it there anyway...

23 October 07 at 5:19 PM
# Shahryar G. Hashemi said:

Hi,

I have posted 3 times indicating the error with datetime difference but no one seems to have an answer.  Is this product even supported by Microsoft?  Will there be an update or basically we have it as is until SQL 2008 is out?

I would really like to know.

Shahryar

20 November 07 at 5:42 PM
# Dak Peoples said:

@ David

Thanks for your fix for SQL Server 2005 Performance Dashboard Setup.SQL by changing the following line from:

sum(convert(bigint, datediff(ms, login_time, getdate()))) - sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

to:

sum(convert(bigint, CAST ( DATEDIFF ( minute, login_time, getdate()) AS BIGINT)*60000 + DATEDIFF ( millisecond, DATEADD ( minute, DATEDIFF ( minute, login_time, getdate() ), login_time ),getdate() ))) - sum(convert(bigint, s.total_elapsed_time)) as idle_connection_time,

Worked perfectly to resolve the "Difference of two datetime columns caused overflow at runtime" error.  

-Dak

21 November 07 at 1:34 PM
# harryaya said:

Great! The fix works perfect on "Difference of two datetime columns caused overflow at runtime" error.

05 December 07 at 12:33 AM
# zerep said:

Hello,

i have the same problem that Heinrich posted on May 16,

"when i click on any  blue region in the chart for the SQL CPU utilization on the performance dashboard where you normally would get further infos (reports for the last 15 minutes).

There comes no repport but an Error: Arithmetic overflow error conferting expression to data type datetime.

This happens on two different servers with SQL Server 2005 Enterprise Editions, but all other driil through is functioning. What' s the problem, is it a problem in recent_cpu.rdl or performance_dashboard_main.rdl or in the called stored procedures. Please help, it is a really good tool, but not good when functioning only partly."

Thanks for help

06 December 07 at 11:53 AM
# Anthony Robinson said:

Has anyone found a fix for this particualr error:

An error has occurred during report processing.

Cannot read the next data row for the data set SESSION_REQUEST_ACTIVITY.

For more information about this error navigate to the report server on the local server machine, or enable remote errors

I applied the fix for the conversion issue, worked great....but still would like to get this other one knocked out.

Thanks!!

02 January 08 at 12:14 PM
# Anthony Robinson said:

Did anyone ever find a solution to this issue:

An error has occurred during report processing.

Cannot read the next data row for the data set SESSION_REQUEST_ACTIVITY.

For more information about this error navigate to the report server on the local server machine, or enable remote errors

It's a different query altogether from the fix that was listed.

Thanks!

02 January 08 at 5:25 PM
# JornNystad said:

Thank you for an exellent tool!

Does anyone know if its possible to exclude replication queries from the report?

Thanx

Jørn Nystad

07 January 08 at 4:12 AM
# Steve Schneider said:

I have a fix for the ability to drill down into the blue zone when you have a server which has been running for 24 or more days:

Go to the recent_cpu.rdl file located in (default):

C:\Program Files\Microsoft SQL Server\90\Tools\PerformanceDashboard

go to line number 3271, you should see the "From" statement of a sql query...

paste what follows thru line 3306 of the original file...

/*

(PS... save your ORIGINAL FILE)!!!

caveat emptor!!!

Don't haze me if this doesn't work for you!

It works for me!

*/

from (select s.session_id,

r.request_id,

s.login_time,

-- s.host_name,

s.program_name,

s.login_name,

s.status as session_status,

s.last_request_start_time,

s.last_request_end_time,

s.cpu_time as session_cpu_time,

r.cpu_time as request_cpu_time,

-- s.logical_reads as session_logical_reads,

-- r.logical_reads as request_logical_reads,

r.start_time as request_start_time,

r.status as request_status,

r.command,

master.dbo.fn_varbintohexstr(r.sql_handle) as sql_handle,

master.dbo.fn_varbintohexstr(r.plan_handle) as plan_handle,

r.statement_start_offset,

r.statement_end_offset,

case

-- Steve: Fixes begin here:

when convert(bigint, CAST ( DATEDIFF ( minute, start_time, getdate()) AS BIGINT)*60000 + DATEDIFF ( millisecond,

DATEADD ( minute,DATEDIFF ( minute, start_time, getdate() ), Start_time ),getdate() ))

&gt; 0

then convert(float, r.cpu_time) / convert(bigint, CAST ( DATEDIFF ( minute, start_time, getdate()) AS BIGINT)*60000

+ DATEDIFF ( millisecond, DATEADD ( minute, DATEDIFF ( minute, start_time, getdate() ), Start_time ),getdate() )) else convert(float, 1.0) end

as avg_request_cpu_per_ms,

isnull (datediff(ms, case when r.start_time &lt; @WithActivitySince then @WithActivitySince else r.start_time end, getdate()), 0)

as request_ms_in_window,

case when s.login_time &gt; getdate() then convert(float, s.cpu_time) / (datediff(dd, s.login_time, getdate()) * cast(86400000 as bigint) + datediff(ms, dateadd(dd, datediff(dd, s.login_time, getdate()), s.login_time), getdate())) else convert(float, 1.0)

end as avg_session_cpu_per_ms,

convert(bigint,isnull(datediff(s, case when s.login_time &lt; @WithActivitySince then @WithActivitySince else s.login_time end, case when r.request_id is null then s.last_request_end_time else getdate() end), 0)  )* 1000

as session_ms_in_window

from sys.dm_exec_sessions s

left join sys.dm_exec_requests as r on s.session_id = r.session_id  and s.session_id = 1

-- Steve: Fixes end here

where (s.last_request_end_time &gt; @WithActivitySince or r.request_id is not null)) as d

where (avg_request_cpu_per_ms * request_ms_in_window) + (avg_session_cpu_per_ms * session_ms_in_window) &gt; 1000.0</CommandText>

       <QueryParameters>

         <QueryParameter Name="@WithActivitySince">

           <Value>=Parameters!WithActivitySince.Value</Value>

         </QueryParameter>

       </QueryParameters>

       <DataSourceName>DataSource1</DataSourceName>

     </Query>

11 January 08 at 5:03 PM
# Impedance Mismatch said:

...potreste avere un errore nella visualizzazione dei report della Performance Dashboard. Questo è dovuto

30 January 08 at 10:23 AM
# Vince said:

Great solution David. Microsoft needs to hire some people like you.

13 February 08 at 2:12 PM
# Anthony Robinson said:

I have posted this question to about a dozen different boards and have not received any response...does Microsoft even support this thing or read the posts people put out there?!?

I originally got the conversion error. I applied the fix that was mentioned. Things worked fine. I am nor getting this:

An error has occurred during report processing.

Cannot read the next data row for the data set SESSION_REQUEST_ACTIVITY.

Difference of two datetime columns caused overflow at runtime.

Does ANYONE know what this is and where I can go to fix it???

03 March 08 at 1:30 PM
# Russ said:

I would like to let some of my developers see the dashboard.  I ahve not given them SA  rights.  When they try to view the rep[orts they get 'Error  you do not have permission to run sys.traces .

My question is how do I grant them permissions to the sys. schema without granting SA rights?

14 April 08 at 4:53 AM
# Brad said:

The main report has a table for user requests and user sessions?  What are the threshold figures for the items in this table?

The expensive queries section of the screenshot has several links.  Are the stats collected for queries ran on a db where the sql code is in the programming language and not in TSQL?

28 April 08 at 10:49 PM
# Michael Lacy said:

It would be nice if the fixes to the setup.sql and to the recent_cpu.rdl were rolled-up into a new download msi. Or will these be fixed when SQL 2005 SP3 is released!?

02 July 08 at 10:32 AM
# Alexander Gladchenko said:

Microsoft SQL Server 2005 Performance Dashboard Reports предназначен для контроля и получения необходимой

06 April 09 at 3:57 AM

Leave a Comment

Comment Policy: No HTML allowed. URIs and line breaks are converted automatically. Your e–mail address will not show up on any public page.

(required) 
(optional)
(required) 

About Paul Mestemaker

I am a Program Manager on the SQL Server Manageability Team at Microsoft. I am a proud University of Michigan alumnus. I graduated with a business degree from the Stephen M. Ross School of Business in 2005.
Page view tracker