Consultant’s Life – 30 Minutes Pre Call With Customer for SQL Server Performance Tuning

Since I took the consulting way for about a year now, it is interesting to see that the fundamentals and basics of engaging with my customers have not changed for decades. I get a number of requests every single day and I need to prioritize starts. Having said that, in the mayhem of qualifying an engagement, I have my own way to set and get expectations. In this blog, let me take a tour of that thought process and give you the secret recipe that works for me to date. I am working as an independent SQL Server Performance Tuning Consultant and I love my job. Let us learn about Pre Call with a customer.

Consultant's Life - 30 Minutes Pre Call With Customer for SQL Server Performance Tuning 30mincall-800x412

I know this is not something written on stone, there are ways you handle the situation in hand. Since I do performance-related engagements with customers, most of them come with a simple statement – “My Server is slow and I want you to solve this.”. This is like music to my ears when I hear such requests. But the logical mind of mine goes to tell, do you know what they have? Will we be able to solve the problem just with this context? After this crosses the mind, the logical step I take before any assignment is to have a pre-briefing call. This sets the tone of the deliverables from my end and also sets me up to be prepared for anything I need to do as homework. So what do I ask during the call:

Pre-Call 101 – SQL Server Performance Tuning

Here are some of the typical questions I take as notes before getting into an assignment. I am sure these will give you some guidance too when working on your environments:

  1. What were the recent changes?  Examples include:
  2. When did the issue first start? What was the last time it worked?
  3. How did you become aware of the issue and were there any errors (error log, the Application log, Application stack, etc)?
  4. What is the database information around size, files, tables accessed, HA/DR implemented, monitoring software used, server sizing, etc?
  5. Name and other information of the application (type, user profiles, etc)?
  6. Is it occurring randomly or is there a pattern (time of the day, night, when the load is above a certain value, month-end alone, etc)? What is the duration of the issue when it occurs?
  7. Is the issue occurring right now and unresolved?
  8. What is the issue? What symptoms are being observed? What makes them feel it is a problem?
  9. Versions of SQL Server and Operating System?  Physical hardware, on-premises VM or Azure VM?
    1. Updates/Hotfixes to OS, SQL Server, Application, etc.
    2. Changes of maintenance jobs
    3. Hardware changes/upgrades in the recent past
    4. Configuration changes made on the server, network, switch, etc
    5. Data and usage changes
  10. How did it get resolved in the past? What are the steps the admins take to resolve? What were all the resolutions applied from the various search engines before landing to me?
  11. What is your specific end goal of this engagement? What SLA are we talking about?
  12. What have you done so far? Have other consultants involved or was Microsoft support contacted etc?

If you really see, I try to walk through some of the basic understanding of the application and everything that surrounds the database. Once all the information is available in hand, I have the confidence in what can be delivered and how it can be delivered. What is out of scope and what is within the scope of the engagement.

I think at this moment I have aired some of my secrets. But I am sure I am missing things that can be great learning for me too. Do let me know if you use something similar or are there things that you ask customers? Do let me know via comments as it would make this blog much more useful. I always felt, sharing is caring – I hope you will too.

In the future blog post, I will highlight how I work with customers once we move to the performance tuning phase. It is equally interesting and there is plenty of learning. As I said in the first line of this blog post, I am loving every single bit of my job as a SQL Server Performance Tuning Consultant.

Reference: Pinal Dave (https://blog.sqlauthority.com)

Consultation, SQL Server
Previous Post
Life Lessons – Understanding Your Customer
Next Post
My Journey to CrossFit Level 1 Trainer (CF-L1) Credential

Related Posts

3 Comments. Leave new

  • Another question I ask to myself is whether the development environment also experiences the same issue?

    Reply
  • Gordon Galloway
    September 6, 2016 6:08 pm

    In the spirit of sharing…

    I enjoy reading your post because I am not an SQL-Server expert. The company I work for does have several good DBAs. So I tend to look at the server itself when asked to assist with a database related issue. My questions tend to be about the server configuration and the OS metrics:

    • Is this a physical or virtual server;
    If physical, how may cores; Intel or AMD;
    If virtual, how many logical processors
    • What memory is available/defined.
    • The SQL-Server makeup:
    How many database are hosted
    Are activity profiles available.
    Have there been new databases added recently.
    Which database is/are having a problem.
    Has the SQL-Server been recently migrated to a new host server.
    • The connecting application(s):
    Recent changes;
    Is connection pooling used
    Etc.
    • What is the IO mix: read / write
    • What is the storage: local disk, or SAN
    • Is the normal database use high IO or high CPU, or both.

    I doubt any of this is new to you or of much help, but in the interest of sharing/caring…

    Gordon L. Galloway
    Consulting Capacity & Performance Eng.

    Reply
    • Thank you Gordon,

      This is an amazing list of topics. They are very well grouped and thank you for putting them together and sharing it over.

      Reply

Leave a Reply