How to See Rowcounts and Execution Time for In-Flight Queries in SQL Server
I frequently need to see rowcounts and execution time for queries while they’re running. Maybe I’m troubleshooting a slow query …
Read MoreBy Kendra Little on • 6 min read
What are the best tools to collect and baseline wait statistics? Should you write your own? Watch the 18 minute video or read the episode transcript below.
I am getting into performance troubleshooting on SQL Server. I hear you talk about wait stats a lot, and how important they are to the process of troubleshooting.
What ways are there to check the wait stats for a given time? How would you go about creating a baseline for a system you have just taken over?
Sincerely,
Waiting on Stats

If you listened to the performance tuning methodology I outlined in an earlier episode, you saw how important I think wait stats are for troubleshooting performance.
If you missed that episode, it’s called Lost in Performance Tuning. (I’ve got an outline of the discussion in the blog post, as always.)
SQL Server is a mature database. There’s a lot of vendors out there who have tapped into the need to track and baseline wait stats.
They’ve honed tools to:
Example vendors - I’m listing three that I’ve used before to solve problems:
SQL Sentry Performance Advisor, Idera Diagnostic Manager, Dell Software (formerly Quest) Spotlight on SQL Server Enterprise
I haven’t listed these in order of preference. I know people who swear by each of them.
Since monitoring systems for SQL Server are pretty mature, the differences are in the details.
Details can be very important, of course– research and trials will help you find which one is the best fit for your team, processes, and applications.
There are some people out there who think you should roll your own tools. That it makes you more legitimate.
I’ve written a lot of my own tools. It takes a lot of time.
To get feature parity with what vendors are offering, we’re talking years of investment.
It’s really easy to negatively impact performance with your tools. Tool vendors work very hard to avoid this, and it even happens to them sometimes.
The difference is that the vendor has a bunch of engineers who can quickly fix the issue and release a new version.
It’s only worth it to write your own tools when nobody offers a solution that fits you.
I wear a heart rate monitor to help me estimate how active I am during the day, and how hard I work during my workouts. Heart rate monitors are pretty affordable, and you can choose between wearing them on your wrist and wearing a chest strap. Some are more accurate than others, and they have different reporting tools.
I could learn to take my own heart rate and sample and record it myself. I could probably build some reports off it. But I’m really happy having spent $150 for a device that does it for me.
This leaves me free to spend my time interpreting the heart rate and calorie burn data it gives me, and customizing my activity to fit my health plan.
Do two things:
Bam, your request is looking a lot more legitimate.
Your best bet is to write some code to reproduce performance problems against that server.
Ideally these map to your business cases.
Other ideas:
Review how your use cases all look in the tool you’re testing.
Are the wait stats recorded and displayed well? Are they useful to you?
How easy is it for you to find the queries related to the wait stats?
Reach out to the vendor during your trial if you’re having problem. Sometimes the tools are smart in ways that aren’t obvious. This also gives you some insight into their support processes.
Tip: check if the tool which you test sends monitoring data to the cloud. If so, make sure you get that approved by management before putting the tools into production. In sensitive environments, get that approved before you test it, too.
Sometimes there’s good reasons for budgetary limitations– maybe you work for a non-profit and that money is literally feeding children.
Or maybe you’re doing a short term analysis and you just need to collect information over a couple of days, and there’s no time to test and deploy a more robust tool.
In that case, I’d start with sp_BlitzFirst from Brent Ozar Unlimited:
You can start with what others have built, and slowly contribute on your own as well. Much nicer than starting from scratch.
Copyright (c) 2025, Catalyze SQL, LLC; all rights reserved. Opinions expressed on this site are solely those of Kendra Little of Catalyze SQL, LLC. Content policy: Short excerpts of blog posts (3 sentences) may be republished, but longer excerpts and artwork cannot be shared without explicit permission.