Wednesday, 28 September 2011

Performance Dashboard Reports in SSMS SQL Server 2008 R2 to find the Bottlenecks

SqlServer developers, DBAs or if you are just normal developer who often uses the SSMS if you are assigned to optimize the database performance and you’re not much familiar or don’t' want to play around with DMVs and DMFs then Performance Dashboard Reports are for you.

Go and download the performance dashboard reports from here. and add it as a custom report to Management Studio (SSMS). It is a free download! Read on below to find out how to install it and use it on your SQL Server. I have also included custom modified files as attachment in end of the post that allow you to use this for a SQL Server 2008 instance. This is provided “as is” with no guarantees.

What will you get by these reports?

Well, These reports are created covering the performance aspects for SQL Server instance. The reports are mainly intended to quickly identify performance problems and help resolve them. These reports use the DMV’s that came out with SQL 2005, so they are very fast & reliable information when troubleshooting a performance problem. Some of the common problems that can be detected using the Dashboard Reports are:

1) CPU bottlenecks (which queries are consuming the most CPU and Plan for this query)

2) IO bottlenecks (which queries are performing the most IO and Plan for this query).

3) Index recommendations generated by the query optimizer (missing index recommendations pulled from sys.dm_db_missing_index_details and sys.dm_db_missing_index_group_stats)

4) Blocking

5) Latch contention and other Wait Types

Pre-Requisites

1. You need to have Management Studio installed on the machine where you intend to use the Performance Dashboard Reports (could be either client or server machine).

2. If you are still using SQL Server 2005 the it needs to have at a minimum SP2 applied (build 9.0.3042 or greater)

Steps to Install:

For SQLServer 2005

1. Run the setup exe downloaded from HERE.

2. Once you install the above, go to %\Program Files\Microsoft SQL Server\90\Tools\PerformanceDashboard and run the setup.sql script against the SQL instance that you want to monitor the performance for.

For SQLServer 2008 R2

1. Run the setup exe downloaded from HERE.

2. Once you install the above. Download the attachment from the link at end of this post and extract the files. You’ll find two files there copy them and paste them to %\Program Files\Microsoft SQL Server\90\Tools\PerformanceDashboard. Overwrite the old files and run the setup.sql script against the SQL instance that you want to monitor the performance for.

Start using the performance reports

Note: The script will create some Stored Procedures, table-valued & scalar functions in the MSDB database. All the SP’s created by Dashboard with have the schema MS_PerfDashboard.

If you want more information on the newly created objects, use the query below
If you want more information on the newly created objects, use the query below
select * from sys.objects where schema_id = SCHEMA_ID('MS_PerfDashboard')

Now, Open a new management studio window, right-click on instance name -> Reports -> Custom Reports.

image

Browse to the location %\Program Files\Microsoft SQL Server\90\Tools\PerformanceDashboard and choose the performance_dashboard_main.rdl and click OK. This will add the performance dashboard to SSMS.

Next time when you right-click on the instance and go to Reports, you should see the entry performance_dashboard_main. Clicking on this will launch the Main Dashboard page.

Below is the screenshot of what the performance report will look like:

image

Few basic fixes you can do quickly:

Missing Indexes -

In the Miscellaneous Information it’ll show you the Missing Indexes link. Click it will open the other reports that will not only show you the Missing index information but also the queries to created them.

Expensive Queries -

If you have queries running on your server instance as job or frequently and consuming lots of resources you’ll find these reports very useful.

image

Report for queries taking higher CPU time will be show by the graph you can click on the bar and find the query details like execution plan, time etc.

Export your reports – Reports should have Export function so it is there. Just right click on any report and select Excel or PDF.

image

Sound interesting.. umm then go ahead and explore more Nerd smile.

You can find some more interesting material of using Performance dashboard reports

1. PPT on Performance Dashboard Reports by Amit Banarjee

2. Perfromance Dashboard “troubleshooting problems” Video by Harish Chawla 

I hope you will enjoy this small but great Dashboard to tune your SqlServers.

download the upadted setup.sql for SqlServer 2008