What’s wrong with SQL Trace?

September 13, 2023

This month, Grant Fritchey (@scarydba) asks us to write about Extended Events (XE). He mentions that they were a topic once before (it was in 2015 – more than 8 years ago), and mentions about how they deserve more attention than that.

I kinda agree, but I kinda don’t.

Extended Events just work. They’re better than the old Trace functionality with Profiler. I can have XE sessions sitting there that I can spin up and shut down, much like I could with traces. I can have sessions that don’t write to files that I watch for when particular things occur. I can very easily move through the results, apply filters, all kinds of things.

And yet there still seem to be a bunch of people that haven’t got into Extended Events, and still prefer to use Trace/Profiler. Despite the fact that they’ve been around for a very long time now. Maybe this is why Grant says they need more attention.

I ask myself why people haven’t adopted XE, and I think it just comes down to this:

Trace still works.

It’s not that Trace is better. It’s just that it’s still there. And if there’s no good reason to change, then people won’t.

There are plenty of reasons to prefer XE. But one big reason to not prefer XE is if you already feel comfortable with Trace. Trace isn’t broken enough, and it’s still here.

When SSIS replaced DTS, DTS stopped being available. People could no longer use it, and they had to change.

When the =* method for doing outer joins was replaced by the keywords LEFT JOIN, SQL (eventually) stopped supporting it, and people had to change. (I still remember applications that needed to change their code and didn’t want to upgrade.)

The SQL community refers to TeamProfiler and TeamXE. I’m definitely in the latter. But I also think it’s great that the old stuff still works.

Suppose you’re TeamProfiler. You have probably seen a bunch of things that say why you should make the switch to Extended Events (and bear in mind – you don’t actually need to ‘switch’, just stop doing new stuff with the old tech). I expect that none of the reasons are compelling enough to make you want to change how you do things.

So what would make you change?

Would you do it for yourself? For your career?

Would you do it for the sake of your colleagues who want don’t want to feel like they’re stuck in the past, who want to work somewhere that uses new technology?

Would you change for the new person in your team, who has always used Extended Events. Are you really going to ask them to learn Trace?

I get that Trace still works. That’s a good thing. But don’t hold yourself back. And definitely don’t hold your team back.


Leave a Reply

LobsterPot Blogs

Blog posts by Rob Farley and other LobsterPot Solutions team members.


Related Blogs