I’m honored to say that I’ll be presenting a session at the PASS Summit this year. The Summit is kinda like the Super Bowl of American SQL Server conferences: the competition to present is intense, and that makes you wanna bring your absolute best game.
I try to bring something really different every year. I try to push myself into new presenting styles, bring some kind of new trick to show off. Past stunts have included:
- 2017 – Last Season’s Performance Tuning Techniques (24HOP) – Erik and I wore fashion costumes for the online delivery emphasizing how quickly your skills can get out of date. (Dagnabbit, PASS’s recording doesn’t include the webcams, which is 99% of the fun.)
- 2016 – How to Think Like the Engine – I’ve been honing this session for years, and it’s a very different style than the typical Summit session. Absolutely zero live demos, but instead a series of screenshot demos that highlight very specific behaviors, and pair well with paper handouts. Ahead of time, I got into the room and got volunteers to help me distribute Stack Overflow’s database via paper handouts on every single seat – hard to do in the biggest room at Summit, that’s for sure. Ratings worked out well.
- 2016 – 500-Level Guide to Career Internals (Half-Day) – I want to be a force multiplier, so my goal for this session was to convince dozens of people to start a blog or build presentations to further their careers. This was one of the most fulfilling sessions I’ve ever given because I got so many personal thank-you notes afterwards. I’m so thankful to PASS for giving me the chance to do a half-day professional development session. (Ratings are in the above link, happy with those too.)
- 2014 – Developers: Who Needs a DBA? I wanted to tell a story: take a developer, introduce his background, talk about the problems he was facing, and then use a series of scripts to solve those problems. Worked well, got fantastic feedback.
- 2013 – Why is SQL Server Slow Right Now? In which I broke PASS’s rules in order to show the audience a magic trick, a fake set of incoming emails alerting me to a live performance problem.
- 2012 – Bob Dylan Explains TempDB – A lightning talk with a costume. The costume was great, my accent not so much, but man, did I have a lot of fun with this. (In the video, I hold the (bad) imitation throughout, but in the live lightning talk, my voice quickly devolved into some kind of Sanford & Son.
This year, I had a new challenge for myself: what would it be like to teach a really hard topic in as little time as possible? Could I zero in on something really challenging, take someone with near-zero performance tuning expertise, and teach them to understand how a hard problem happens?
The more I analyzed it, the more I thought I could do it – but that means it’s no fun. So I set the bar a little higher. Here’s the abstract:
“But It Worked in Development!” – 3 Hard Performance Problems
You’ve been performance tuning queries and indexes for a few years, but lately, you’ve been running into problems you can’t explain. Could it be RESOURCE_SEMAPHORE, THREADPOOL, or lock escalation? Brent Ozar will explain in this fast-paced session.
Warning: this is not an introductory session. These are going to be tough problems. You’ve been performance tuning queries and indexes for a few years, but lately, you’ve been running into problems you can’t explain. Could it be RESOURCE_SEMAPHORE, THREADPOOL, or lock escalation? These problems only pop up under heavy load or concurrency, so they’re very hard to detect in a development environment. In a very fast-paced session, I’ll show these three performance problems pop up under load. I won’t be able to teach you how to fix them for good – not inside the span of 75 minutes – but at least you’ll be able to recognize the symptoms when they strike, and I’ll show you where to go to learn more.
You need to be vaguely comfortable reading execution plans, know what’s stored on a clustered vs nonclustered index, and be looking for a good time.
The Mechanics of Delivering It
In a 75-minute session, I don’t really have 75 minutes to talk. You basically get about 60-65 minutes for real content. If I split up 3 problems into 60 minutes, that only gives me 20 minutes per issue. That means I need to get creative about how I tell the story.
I’m aiming to use only one table. I frequently do demos with the public Stack Overflow database, but I can’t expect the audience to know the entire schema. To minimize explanation time, I need to stick with as simple queries as possible, and ideally only using one table. Given that a good percentage of the audience has probably seen How to Think Like the Engine (it’s free people, go watch it,) I’m going to try to build all of the demos with the Users table. I might even end up printing the white & black page (front & back) again and putting it on the seats to help people visualize the execution plans.
I’d love to stitch them together into a story. I want my workload to use a combination of just two queries throughout (an update and a select) that can reliably produce all three of these issues. Say:

- At the start, the UPDATEs are causing table locks due to a lack of indexes
- I add an index, solving that, but the index isn’t perfect, so now my SELECTs get a huge memory grant, starving SQL Server into RESOURCE_SEMAPHORE
- (And so on)
If I can stitch them together into a continuous, cohesive story, it’s easier for the users to follow along. However, if I try to work in both the problem and the solution, then I’ve got less time to cover. (Even touching briefly on a solution is going to prompt the attendees to ask more questions about it – and I can’t cover those in the short timeline. Or maybe I can. That’s the fun of pushing this as hard as I can.)
The topic dictates my slides/demos method. I try to push myself to use new delivery techniques, but on this one, the delivery is going to be pretty clear:
- PowerPoint to introduce the table and the first topic (say, lock escalation)
- Switch to SSMS to show it happening live
- Switch back to PowerPoint to show visual slides explaining the concepts
- Then repeat the cycle again for the next topic
I’m not thrilled about that – it’s pretty traditional – but it feels like a smart compromise given what I’m trying to pull off overall. If I do it, then people will walk out saying, “Well of course that’s how those three things work – I don’t understand how people could think it works any other way, and it’s so marvelously simple to understand.” Fingers crossed.
And I think I can take it a little beyond. It feels a little crazy to try to do all 3 of these in a single 75-minute session, but beyond that, I think I can cram in one more unusual trick. More on that as we get closer….