github erikdarlingdata/PerformanceMonitor v2.0.0
v2.0.0 - The SQL

latest releases: nightly, v3.5.0, v3.4.0...
6 months ago

This release was a Stupid© amount of work.

First, thank you to everyone who has submitted issues, questions, feedback, and contributed code.

You're all the best, and if I could hug you all the way I hug a glass of above room temperature Scotch, I would.

After the 1.3 release, I decided to take a new approach to development: Look at everything like I hate it.

Did it work? Well, you be the judge.

I added a graphical plan viewer

Microsoft released the mssql VS Code extension under the MIT license, which conveniently has all of the assets and XML I needed to build it out.

When you're in any of the query-related tabs, you can do two things with a right click:

  1. View the cached/estimated plan for a query
  2. Execute the query (exclusions apply) to get the actual execution plan

The "Copy Repro Script" feature was nice, but you had to go run it in SSMS. There's nothing wrong with that, but it's an extra step.

I hate extra steps, whether there's one or twelve of them.

Plus, when I'm in charge, I get to add my own plan analysis rules to it. I was able to get a good bunch in this round, but I'll be adding in more later.

You'll see all the normal warnings you're used to, plus ones I like to warn people about: Filters, Eager Index Spools, Skewed Parallelism, and more.

I added Perfmon Helpers

Remember that time you were looking at a specific problem, and you remembered all the relevant Perfmon counters you'd want to get details about it?

Yeah, me neither.

So now, when you go into the Perfmon counters view, there's a drop down that auto-selects relevant counters for specific problems.

Half the reason people don't use these things is because they're indecipherable. I tried to make them cipherable for you.

I added interactive buttons

The current queries tabs are still queries run on collector schedules.

If you want to see what's running right now, you can press a button to do that.

Again, reduce friction.

Give you everything you need in one place.

Make you happy.

I care about you.

Big Monitoring©️ doesn't care about you.

I added a bunch of new graphs

What would life be without more data? Empty. Meaningless. Like this former glass of Scotch.

  • Memory clerks tab in Lite
  • Current Waits charts in both (from waiting tasks)
  • File I/O throughput, because latency is half the battle
  • CPU scheduler pressure, for those Extra days

And more! You'll see.

I made DuckDB behave

It turns out that DuckDB is fantastic at running crazy fast analytical queries over its own tables, Parquet tables, and whatever other files you got.

But a steady stream of small inserts gives it upset stomach, indigestion, etc.

The database gets huge, fast, and starts slowing down a bunch.

Now, every time DuckDB hits 512MB, it archives all its data to Parquet files and reinitializes itself.

This keeps the inserts flowing, the queries going, and the weird CPU spikes... not spiking.

The Parquet files are much better compressed, and just as quick to query.

I dunno how they do it, but it's pretty cool.

But wait, there's more!

Check out the link right below to see everything that got done.

If you have questions, check out the Read Me.

I didn't name it that because you shouldn't read it.

Seriously. I get about a dozen questions a day that are answered in there.

Speaking of which, I need to go update that.

See the CHANGELOG for full details

Don't miss a new PerformanceMonitor release

NewReleases is sending notifications on new releases.