Turns Out DBAs Use the Consultant Toolkit, Too

Consultant Toolkit

When I first hired Richie over a decade ago, the very first task I assigned him was to build The Consultant Toolkit.

I said, “Whenever I’m working with a client, I have to gather the same data over and over. I run scripts like sp_Blitz, sp_BlitzIndex, sp_BlitzFirst, and so on, copy/pasting that data into a spreadsheet for later review. Then I run sp_BlitzCache a bunch of different ways to get their most resource-intensive queries, and I have to save the query plans off one by one for later review. It’s a lot of manual labor, and that costs money. Can you build something to gather all that data automatically, put it into Excel, and save the query plans as separate files, named by the problems with them, like high CPU or high reads?”

Richie: “Yeah sure.”

That app saved us so much time that we were able to lop an entire day off my 3-day 2-day SQL Critical Care engagement, which cut costs for the client, and let us focus on the fun parts of the work instead of the drudgery.

It worked so well that whenever prospective clients would contact us even thinking about bringing us in to help, I would say, “Here’s a utility to gather a bunch of diagnostic data. Send me that, and I’ll review it for free to see whether or not I’m a good fit. Very often, I’d be able to rip through the data in minutes and say, “Oh actually, all you need to do is ___ – try that first, and that may solve the problem altogether. Let me know either way.” I didn’t have to get connected to the server at all.

I ended up giving up on the idea of trying to build a big SQL Server consulting company, so I started selling the Consultant Toolkit to other consultants and contractors. I ran a few tutorial webcasts showing folks how it worked, and consultants bought in. Today, over 100 consulting and contracting companies around the world rely on The Consultant Toolkit to deliver their services.

Or maybe y'all were just trying to emulate the lifestyle

Over time, DBAs started buying it, too.

At first, I started replying to their purchase emails saying, “Whoa, hang on, I don’t think you really wanna buy that. That’s for consultants.”

To my surprise, they did indeed wanna buy it, and they had a few interesting usage scenarios that I hadn’t predicted:

  • DBAs who worked for giant global companies, and were often called into different teams or departments to quickly troubleshoot a server
  • Customer support engineers at software vendors who would get calls from clients saying there was a problem with the app, and the customer support wanted to check on the health of the SQL Server where the data was stored
  • DBAs who just love the First Responder Kit, and use it for performance troubleshooting, and wanna have a way to get all of the data out quickly

So for y’all, here’s how it works.

When you download the Consultant Toolkit, it’s a zip file with the app ready to go. You don’t have to install it or go through any kind of setup process. It’s a command line app. To gather diagnostic data from MyServer using your Windows auth login, go to a command line prompt and run:

There are also parameters for SQL authentication, Azure SQL DB, and Entra ID multi-factor authentication, and those are covered in the documentation.

By default, it gathers a minimal set of data within a couple of minutes. If you’d like much more data, you can add the –deepdive parameter, and it’ll gather more on the plan cache, indexes, etc.

It packages the script outputs into an Excel file with one tab for each set of results, like sp_Blitz, sp_BlitzIndex’s different parameters, sp_BlitzCache with several different sorts (top queries by CPU, by reads, by execution, by duration, etc), sp_BlitzLock, plus other diagnostic scripts that I find helpful.

In addition to the Excel file, it also outputs:

  • Each query plan from sp_BlitzCache – for example, the top 1 by CPU will be saved as TopQueryBy_CPU_1.sqlplan (and the full top 10 are saved)
  • The queries running right now are saved as QueriesRunningNow_1.sqlplan (and they’re all saved, which is useful if you’re troubleshooting a live blocking issue)
  • The deadlock graphs from sp_BlitzLock are stored as “Deadlock #1, Query #1 – VICTIM.xdl”
  • On SQL Server 2019 and higher, queries that triggered missing index recommendations are saved as MissingIndex_1_dbname_schemaname_tablename.sqlplan

When it’s done, you get a single zip file with the server’s name and date, and instructions to send that zip file back. It’s designed to be easy enough for a non-technical person to run, but the output is powerful enough for you to be able to dig into really complex issues in a matter of minutes.

If that sounds useful, check it out.

It’s on sale for just $349 during our Anniversary Sale, and I believe it’ll pay for itself within a week. You’ll do your work faster and more thoroughly, with less time involved from everybody else in the process. I’ll guarantee it with a 14-day, no-questions-asked money-back guarantee. If it doesn’t pay for itself, email me at Help@BrentOzar.com and I’ll give you your money back, period. Enjoy!

Previous Post
New Official Documentation on Forced Parameterization

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.