SQL Server Comprehensive Healthcheck (3 days)

This will be a comprehensive healthcheck of your SQL Server and I’ll identify the top 5-10 pain points affecting the server that should be addressed. This could include poor performance, incorrect configuration or required maintenance. We’ll go into detail so you understand each issue clearly and what is required to fix them. I’ll provide you with an in-depth action plan you can work through as well as including training resources if required. You can, if you wish, then contract me further to work with you on making the changes required.

There are a number of scenarios where a healthcheck is likely to be beneficial to you:

  • You are experiencing performance problems, or seeing general performance degradation.
  • You’re anticipating an increase in application activity and want to ensure that performance will scale smoothly.
  • You’re being proactive and want to catch any lurking issues before they hit you.
  • You want to reduce costs, optimizing the database will often allow you to run on less powerful (and therefore much cheaper) equipment.

We’ll start with a free half hour call to discuss your situation and then assuming you wish to proceed will book a date in for the healthcheck.

What’s the approach?

I take a standard approach to most problems, which is Diagnose, Analyse then Implement.

Step 1: Diagnose

I’ll ask you to run some diagnostic scripts on your server and return me the results.  These scripts may include sp_whoisactive by Adam Machanic, the Consultant Toolkit by Brent Ozar, and scripts from my own website or other sources. The first two items in that list require installing stored procedures on your system – either within the master database or a separate admin database. They are great resources and cover a lot of areas, but if your policies prevent you from installing such objects we can run individual scripts instead – though things will take a little longer.

It’s worth noting that in most cases I won’t I require direct access to your server or have any need to view application data. The data returned to me will all be metadata about the server and databases.

Once I’ve received the data back from you I’ll review the results and will be able to identify the areas of most concern. In general we’ll look to focus on the top 5 to 10 items that are causing you pain – or are likely to in the future. In most cases where there are performance problems I usually see that it is only a few queries that are responsible for most of the CPU processing

We can then move onto the next step.

Step 2: Analyse

This is where most of the work will focus. I now understand what is troubling your server – or likely to cause trouble. I may identify sub-optimal configuration, or possibly code objects (such as stored procedures) that should be targeted for optimization. I’ll need to request further information from you at this stage to help find the solutions.

Code optimization is a common scenario we might need to look at. Let’s say we identify a set of stored procedures that are performing badly. I’ll need to look at the code, and we’ll look to capture deeper information about the execution profile in order to identify improvements. Fixes might include index enhancements or code changes. We may work together on testing candidate fixes to verify they have the desired benefit.

I’ll then provide you with a detailed plan of action.

Step 3: Implement

Out of the Analyse step I’ll provide you with a detailed plan of action. This will include an in-depth description of each issue and what needs to be done to fix it. For each issue I’ll also include resources, either from my own blog or others that gives you a lot more detail about the problem so you can understand it clearly.

We’ll get on a 1 to 2 hour call so we can go through each issue and I can answer questions and help you find the best plan to implement the fixes identified. You can, if you wish, also contract me further at this time to work with you on the implementation

Next Steps

We’ll schedule a 1 hour follow up call to discuss how you’re getting on with the implementation and whether you’re seeing the desire outcome. This can be in a few days, a week, or whatever schedule works best for you. I’ll also remain available in the interim and indefinitely afterwards to answer quick questions, if you have queries that require deeper research from me then I’ll let you know that and we can discuss how to proceed.

Getting started

Either email me directly at matt@matthewmcgiffen.com or contact me through my contact form. Provide a description of the problem, including the level of urgency, and let me know what version and edition of SQL Server you are running. I’ll get back in touch to arrange an initial free 30 minute call where we can discuss the issue and how I work in more detail. We can then book in the healthcheck.


I offer billing in UK pounds, US dollars or Euros:
£1,950 / $2,370 / €2,250