Why I’m Taking a Break from Teaching In-Person Classes

Blog Posts

Let’s get one thing out of the way right away: I love teaching.

I love seeing that “Ah-ha!” moment in a student’s eyes when they suddenly understand a concept. I also believe that in-person events are the best way to see that moment. It’s magical. As this post goes live, I’m welcoming a bunch of folks to Catalyst Ranch for my performance tuning class, and I’m totally excited to show them all kinds of cool stuff.

However, in-person classes have a few drawbacks.

Things can go horribly awry in-person. There was that time all the meals were delayed due to a kitchen problem. The time the WiFi went down. The attendee with irritable bowels. The attendee with no sense of personal space. The attendee with the broken arm – oh wait, that was me.

Hanging out with my hairy daughter

When I’m on the road, I miss home. At the end of a long day of training, you come home to…a hotel room. And as nice as hotel rooms can be, they’re not as nice as home. I miss my bed, my pillow, my couch, my favorite restaurants, Ernie, and of course, Erika. Even though I’m able to do that stuff when I teach in Chicago, I hear from students that they miss home, too, and life doesn’t always let them attend classes out of town.

I love travel, but when it sucks, it really sucks. Travel is the most fun for me when I can arrive early, spend a few days relaxing and enjoying my destination, and then rolling up my sleeves to get some work done. (My recent Isle of Man trip was a good example of that.) In situations like that, if there’s a delay, who cares? Enjoy the ride. But that’s harder to do if I need to frequently jet around from one class to the next client. Travel sucks for the students, too – I’ve had students outright miss classes due to flight problems, visa issues, and even weather.

Online classes have gotten really powerful. For example, I record the classes, and attendees get to watch replays. I tried doing that with in-person classes, and it was just way too much work to capture good audio and camera angles. Another one is cloud labs – since each student has their own Internet connection, we don’t have to worry about slow connections to their cloud VMs.

I realized something during my last retreat.

When I did my last career planning retreat in May, I thought a lot about what’s important to me, and what I enjoy. When I force myself to disconnect, answer specific questions, and make lists of things, I have a lot of surprising realizations.

One of the big realizations this year was that I wanna:

  • Spend more time teaching
  • Spend less time traveling
  • But when I do travel, spend more time on vacations (which I think of as retirement practice)

So even though it’s a profitable business, I’m going to take a year off the in-person training classes for 2018 and focus on something new.

I’ll still do conference pre-cons, but only when the conference is in a place that I wanna go, and when the timing works out that I can get there a few days early and enjoy myself. I’m looking forward to Summit next week, and SQLBits 2018 is another great example. I’ve already booked my tickets for the Ferrari exhibit at the nearby Design Museum for the Monday before Bits, and you’re welcome to join me. Shoot me an email if you’d like to tag along.

Read the Comments

My No-Free-Private-Answers Philosophy

Blog Posts

When clients and class students email us a question, we answer. It’s not always right away, but since everybody in the team has access to our shared public email address, somebody’s going to be available sooner or later to give a good answer.

But when people I don’t know email me with a technical support question, I respond with a GMail canned response:

Thank you for thinking of us! We’re busy tending to sick SQL Servers, so for questions, here are a few ways to get an answer:

  • Free, at StackExchange 24/7 – post your question at https://DBA.StackExchange.com, and if you don’t get a good answer within a day, email me the link to the question. The geeks here love answering those.
  • Free, at our weekly Office Hours – on Wednesdays, we do open Q&A. Bring your question, but make it as brief and clear as possible to get the best chance of it being picked. You can register for the next one here: https://www.brentozar.com/office-hours-podcast/
  • With consulting or onsite training – we relieve SQL Server pains with our 3-day SQL Critical Care® process for $6,995. To learn more and read sample deliverables, go here: https://www.brentozar.com/sql-critical-care/

Hope that helps!

I’ve had this same approach for years, and it’s not the only right way. For example, lots of business books will tell you that you should never turn away a future customer. Answer their questions today, and maybe they’ll pay you back with loyal business tomorrow. I can totally understand why people would follow that philosophy.

It’s not like I’m pawning the work off, either. Check the DBA.se users page, and you’ll see that I’m a frequent answerer myself.

I just strongly, strongly believe in growing the online data professional community.


I believe that the faster a data professional discovers the online community, the better off they’ll be. I also believe that DBA.se is the fastest way for them to learn the rules of the road: how to craft a good question, how to work with others to get the right answer, and then longer-term, how to improve their own online reputation.

Getting one of your questions answered online, in public, is a gateway to participating in SQLslack, going to SQLSaturdays and local user groups, then eventually maybe even giving back by starting their own blog or delivering their own presentation.

I make less money this way, but who cares? It gets people hooked on free public help instead of expensive private consulting.

For me, teaching people to fish is just the most personally rewarding approach. Every time I see someone email us in a question, get that canned reply, then proceed to post that same question out on DBA.se, I’m ecstatic. It’s another new community member getting their wings.

Read the Comments

Epic Life Quest Task: Setting the Summit Pre-Con Attendance Record

Blog Posts

When Erik and I got a PASS Summit pre-con this year, I asked Alison and Leeza a question out of morbid curiosity: what was the pre-con attendance record? They reported that 7 pre-cons since 2012 have gone over 200 attendees, and the record was 269.

I figured that would be really hard to beat, especially given that word on the street is that Summit attendance is down overall due to the Halloween scheduling. To make matters worse, I keep hearing “thought leaders” say that database work is dead, and the magic cloud is going to solve everything.

Would there be anyone out there who wanted to spend their Halloween with us, learning how to make databases go fast?

As it turns out, yes: y’all bought 360 seats.

Three hundred and sixty.

Achievement unlocked: we smashed the sales record. We were on track to break 400, but PASS can’t fit more seats in the room so they’ve had to close registrations.

The economics of that: our share is $75 per person, so that’s $27,000. I know the natural inclination is to say, “Wow, that’s a lot of money for one day of work,” but the reality is that there’s a lot of work behind the scenes to pull off something like this.

So now let’s go behind the scenes – I’ll share what we did and what we learned so everybody can up their pre-con game.

Part 1: Writing the Application & the Abstract

This year, PASS took a really cool approach: rather than submitting a title & abstract blindly, prospective pre-con speakers just filled in a form talking about what they’d wanna talk about. Here’s my submission:

Pre-con application, page 1

Pre-con application, page 2

Richie & Tara aren’t copresenters because they’re staying home from Summit this year due to the Halloween scheduling, and I totally understand & support that. The scheduling was also a worry for me, too: how much lower might overall attendance be, and how would that affect pre-con attendance?

Later, PASS gave us the word that our application had been accepted (YAY!) and it was time to start writing the abstract.

I start presentation design by defining the perfect attendee. Erik & I fired up a Google Doc (it’s like multi-player word processing) and brainstormed:

Here’s some of the highlights of our planning document:

Target attendee planning

Based on that, we sketched out the most important performance tuning tasks they needed to learn, prioritized them, and drew the lines on what we thought we could teach them inside one day. (When you’ve been teaching for a while, scoping a one-day class is brutal: there’s so much you want to show folks.)

Then we turned that into an abstract, sent a first draft in to PASS, and they started working with us to hone it and make sure it didn’t overlap anyone else’s abstract. I think PASS was a little surprised when I said, “Just tell me who the other speakers are that I might overlap, and I’ll work with them directly to make this happen faster.” Turned out the other big performance session was Erin Stellato’s, and we happened to both be at SQL Intersection in Orlando, so we just got together in person and finalized our abstracts. Erin wanted to focus on Query Store, so we removed that from our abstract altogether, and ended up with this:

Pre-con abstract

Yeah, you’ll notice that there’s a lot of words and paperwork here, hahaha. At the end of the day, selling a pre-con all boils down to putting the right words together to communicate your goals to the attendee. These words matter a lot.

Part 2: Launching a Marketing Campaign

In our pre-con application, I put a lot of my heart into answer #13. PASS is taking a risk by giving me one of the limited pre-con sessions. They’re investing in me, and I need to deliver a return on that investment by busting my ass to make sure they don’t have empty seats. For every empty seat in the room, we both lose.

It’s my job to tell my readers, “Hey, if you like my work, you can come see me do my best stuff in person here.” That meant we did a ton of marketing work that I’m really proud of.

Blog posts – everybody does a blog post announcing the pre-con, but it’s just not enough. People miss a single blog post. When we blogged about related topics, like How Much Can One Row Change a Query Plan?, I closed the post with lines like this:

Erik and I will be covering these DMVs and the ways we use ’em in our Summit 2017 pre-con, Expert Performance Tuning for SQL Server 2016 & 2017. There’s over 200 seats sold, but there’s still seats available – get yours before they sell out.

Shameless promotion

Online presentation – PASS hooked a lot of the pre-con presenters up with 24 Hours of PASS session spots, so Erik and I brainstormed a really fun topic that would bring folks in (bad fashion), teach them something, and then have a natural lead-in to the pre-con. We announced it, bought costumes, wore them on webcam, had a great time and generated a lot of buzz. (I wish PASS had included the webcam footage in the YouTube recordings – our costumes were spectacular.) When the video came out, we blogged that too. All of the posts tied back in to the page about the pre-con and the Summit registration form.

Email announcements – we’ve been building up our mailing list for years (coming up on 100K subscribers now.) Mailchimp helps us target people by physical location, what kinds of training they’ve bought from us, etc, so we did a few different emails announcing the class.

  • One to Seattle area locals who haven’t bought a full in-person class from us before, and who DON’T subscribe to the blog posts (some folks just get the Monday newsletter, for example) announcing the class, and explaining that you can go even if you don’t buy a full Summit ticket (because they may not have the budget for a $3k conference)
  • Similar demographic, but people who HAVE bought a full in-person class – because they’re likely to go to the whole conference
  • One to non-locals who have bought an in-person class from us – because they’re likely to travel to attend the conference and/or pre-con
  • Later, emails to people who didn’t click the first time, using different subject lines and/or bodies

Granted, this kind of slicing and dicing only makes sense when you’ve got a big mailing list with a lot of history, but even when you’re just getting started with a mailing list, you can still get a lot of bang for the buck from your subscribers.

This part is a lot of work, but once you’ve done it the first time, it’s easy to repeat the process each time you get a conference pre-con or training class. (I do this work for all of our classes.)

Part 3: Giving Attendees More Value

If you’ve been clicking on some of these links as we’ve been going along, you might notice that the BrentOzar.com pre-con announcements have a line that the PASS ones don’t:

Attendees will even get a one-year Enterprise (Everything) Bundle – with that, the $495 pre-con pays for itself!

There’s a reason for that – PASS is in a tricky position. They have to balance the goals of the attendees, speakers, and sponsors. Speakers love to give stuff away, and attendees love to get free stuff, but…some sponsors have a problem with that. Those sponsors say, “It’s not fair that speakers get to promote their company from the podium for free. When the speakers give stuff away, they’re advertising, so they should have to pay to do that.”

That’s why the speaker contract says:

You recognize and agree that the purpose of your session is to provide educational content and that it is not to be used as a sales or marketing platform. Personal contact, company information, and applicable copyright notices are permitted within the designated slides of the PASS provided PowerPoint template. You will not promote your company’s products or services, or that of any companies with which you have a monetary, sales, marketing, or business relationship for the purposes of sales or other commercial engagement. Provided that PASS is notified in advance, branded and non-branded item giveaways, draws, and/or prizes are permitted within your scheduled session with none being left behind at the end. In addition, you are solely responsible for any and all state tax related matters in connection with any branded or non-branded item giveaways, draws, and/or prizes.

That’s fair. I’ve sat in Ignite/TechEd vendor sessions that turned out to be pure spam, and the attendees lose there. It’s my job as a speaker to make sure attendees are happy, and that means zero advertisement. Plus, I love that they just say “PASS is notified in advance” – there’s no pesky approval process, and we just need to say, “Here’s what we’re going to do.”

Initially, we just thought we’d give everybody the free Everything Bundle, but when we broke the sales record, we thought, “How much more value could we add?” We came up with a couple of ideas, and then asked the readers for Kickstarter-style stretch goal ideas.

Here’s what we came up with:

  • 325 seats – free recorded version of the class
  • 350 – repeat the pre-con online
  • 375 – free 1-day class designed by the attendees
  • 400 – free 2-day class
  • Sells out – free 3-day class

These stretch goals didn’t really cost us much – we already have our own online infrastructure to sell & deliver live training classes – but they added a ton of value for attendees.

In retrospect, I should have asked PASS what their max number of seats was. I’d consulted the Seattle Convention Center’s capacity charts, and our room 6B supposedly goes up to 513 capacity in classroom setup with 3 people per table. However, I should have remembered that sometimes venues quote layouts that don’t really work well in reality. (“This Volkswagen Beetle seats eight comfortably.”)

It’s Not Really $27,000 in One Day.

I hate those blog posts that say “I launched an e-book and made $27K in one week!” Launching a product and promoting it is one hell of a lot of work leading up to launch week – and I’m not even talking about the work we’ve put into building the content. (This class is going to blow away expectations – as we rehearsed it last week, all of us had moments where we said, “Whoa, I didn’t know that.”)

Do you need to do all that work in order to have a successful pre-con? Of course not – but like anything else in life, the more work you put into it, the more you’ll get out of it. Like Andy Frisella, the MFCEO, says: do the work.

That’s why I’m so happy with the outcomes, and why I’m sticking this as a point on my Epic Life Quest. We did the work. Next up, and a little related: trying to set a record on our upcoming Black Friday sale.

Read the Comments

How to Understand Where a Software Vendor Employee is Coming From

Blog Posts
1 Comment

I’ve had a lot of conversations with software vendor employees over the years, and I’ve noticed a few things. Understanding these will help you parse what you’re hearing.

They’re working on vNext, not vFiveYearsAgo. They’re already hard at work building things that you’re going to use – not this year, and probably not even next year, but a couple of years from now. They’re hearing about groundwork that’s getting laid for powerful future technologies. This makes them really excited for the future, and very dismissive of today’s problems. (An awesome exception: product managers who want to get the word out about their newly-delivered baby feature.)

There’s a lot they can’t tell you without an NDA. Ever notice how when a community member gets hired into Microsoft, and their personal blogs suddenly cease publishing any new technical content whatsoever, and their few community presentations tend to have a lot of marketing slides & demos prepared by other people? It’s because they’re either working on customer projects that they can’t share, or future products that aren’t public yet, or…sometimes they just had jobs with less stringent employers who let them give back to the community more. They end up doing their communication internally at Microsoft instead. (An awesome exception: people hired in as evangelists.)


They come from the trees, duh

They’re surrounded by similar vendor employees. Many/most of their peers are also devoted to working on future technologies. When they have peer discussions, they’re all excited for what’s coming down the pike. Even when they have discussions with the community, it’s often with dedicated customers who have a lot invested in their ecosystem. (An awesome exception: people who work in open fields like data science.)

This means there’s a serious echo chamber effect. Their marketing team makes a claim, repeats it over and over internally, then the employees start to repeat it to their customers, and they end up believing it’s going to happen. Over the years, I’ve raised my eyebrows a lot when I’ve heard Microsofties I respect say things like:

  • “Windows Phone is awesome, and the next one is going to be a hit.”
  • “Silverlight is the way of the future for cross-platform development.”
  • “Every developer should be writing their code on Universal Windows Platform to reach users on Windows 10, Windows Phone, and xBox.”
  • “You should migrate your apps to .NET Core (or Standard) now.”

It’s not their fault – some (but not all) software vendor employees are a product of their environment. They’re hearing amazing things about the future, and they don’t fact-check this against the current market.

Therefore, you’ve gotta avoid arguments about market share. You might believe the product is dead on arrival because it’s got fierce competition in a market, but it won’t matter. The employee is privvy to things they can’t tell you, and they believe the technical superiority of a non-shipped product will trump the current market share of an existing competitor. Sometimes it does – but neither of you can see that future today. Just accept that they believe their product will dominate, and move on.

I’m not saying I’m good at it. In fact, I’m horrible at it. I can’t keep my poker face when I hear things like, “Parallel Data Warehouse is a great investment” or “if you want to use Hadoop, you should query it via PolyBase.” It’s gotten me into plenty of trouble when I’ve called ’em on it publicly, especially when I should have just politely smiled and nodded along.

I’m using Microsoft examples, but these aren’t just Microsoft problems. They’re problems for lots of big companies that build things. We all have our own biases about the quality and sales potential of our future work. It’s just amplified internally when you’ve got a big company with the echo chamber problem.

Read the Comments

How to Automatically Tweet Your Stack Overflow Answers with Zapier

Blog Posts
No Comments

In our company Slack chat, we have a bot that alerts us whenever there’s a new SQL Server question at DBA.StackExchange.com.

One day, a question came in, Erik got to thinking, and I went a-Googling:

The Eureka moment

First, get your user ID # for the site you want to use (Stack Overflow, DBA.StackExchange.com, etc.) It’s in the URL for your user profile page – click on your user icon at the top of any Stack page, and it’ll take you to your profile. For example:

  • My Stack profile page: https://stackoverflow.com/users/26837/brent-ozar – which means my Stack user ID is 26837, but
  • My DBA.StackExchange.com profile page: https://dba.stackexchange.com/users/426/brent-ozar – which means my DBA.se user ID is 426

Log into Zapier.com and start a new zap. If you don’t already use Zapier, you could try something similar with IFTTT.com or Microsoft Flow. I’m gonna use Zapier since that’s the tool I use for this kind of thing, but feel free to leave instructions in the comments if you’ve got a different way to do it.

For the trigger, choose RSS by Zapier. By default, the new action type is New Item in Feed, but show the less-common options and pick New Items in Multiple Feeds. For the source feed, we’re going to use the very cool Stack2RSS service:

  • http://stack2rss.quickmediasolutions.com/2.2/users/26837/answers?site=stackoverflow
  • http://stack2rss.quickmediasolutions.com/2.2/users/426/answers?site=dba

That first one is my Stack Overflow answers feed (site = stackoverflow, and my ID# for that site) and the second one is my DBA.StackExchange.com answers feed.

For the first action, choose Formatter. We need to trim down the answer titles in case they’re too long. Choose Formatter, Text, Truncate. For the input value, choose Step1’s Title, and trim it down to 100 characters.

For the next action, choose Twitter, Create Tweet. If you haven’t connected your Twitter account to Zapier yet, you’ll have to go through some setup. For the tweet’s contents, here’s what I use:

New tweet contents

Note that in mine, I’m only tweeting my DBA.se answers here – you could customize your tweet intro text to say whatever you want. (Now you see why you’ll definitely need to truncate the tweet contents.)

The Step2.Title field refers to your trimmed/truncated title.

The Step1.Link is your answer’s link, and there’s a catch. If you let Zapier shorten the URL, then the link will go directly to your answer (and not show the question). If you don’t let Zapier shorten it, then due to a bug somewhere (Zapier, Twitter, something’s API, who knows) then sometimes the links don’t work at all – they just go to the root page like https://dba.stackexchange.com rather than the specific question. (sigh) Ah, the Internets.

And you’re done! For bonus points, you could also integrate Facebook, LinkedIn, Google+, or use Buffer to manage it all for you.

At first I felt guilty when we went live with it, sharing our answers on social media. But then I realized I’ve read entire blog posts that have less evidence and detail than Erik’s Stack answers.

Read the Comments

Using Slack for Conference Session Q&A

Blog Posts

Next month at the PASS Summit in Seattle, Erik Darling and I are teaching a one-day pre-conference class on performance tuning.

We sold ~300 seats, which is awesome – but that comes with some challenges, one of which is handling Q&A. As classes get over 100 people, folks can be hesitant to raise their hands, and they rarely want to walk up to a microphone to address the entire room.

I’ve tried using Twitter for this in the past, but it can be hard to get people to:

“Does anyone have any questions?”

  • Fit the question in 140 characters (less the hash tag)
  • Use the hash tag in the question
  • Set up a column or search for the hash tag in their Twitter client (and don’t even get me started on the problems with various Twitter clients on different OS’s, phones, tablets)
  • When people reply, have them remember to include the hash tag in every reply (which many Twitter clients don’t do by default)
  • Follow discussion threads in a sea of tweets

The solution: Slack

Slack is a trendy group chat platform that’s kinda replaced Twitter for me. You can have private Slacks (like the Brent Ozar Unlimited one), and community Slacks like the SQL Server community one.

At SQLslack.com, you can get an instant invite to the thriving SQL Server community, then join in at https://SQLcommunity.Slack.com. From there, you can join the #PASS-Summit channel, for example.

Slack works in the browser, plus has great standard apps. Channel discussions all stay in the same place, and they’re easy to follow. You can go way beyond 140 characters, even uploading pictures and files as part of your thread.

I first started using Slack for the GroupBy.org conference chats in the #GroupBy channel, and it’s been a huge hit with over 500 folks in the channel. It’s very lively during the conference. This month, I started using it for our training class Q&A in the #BrentOzarUnlimited channel, and that worked really well too.

For Summit, what room should we use?

This is where it gets tricky:

  • #PASS-Summit channel – if we use this, the other attendees at Summit are likely to get pissed about how much noise our attendees make in the channel. With ~300 pre-con attendees, there’s gonna be a lot of questions.
  • #BrentOzarUnlimited channel – this might get us in a little trouble with PASS, who gets kinda defensive when people use their company names as part of their presentations.
  • #PerformanceTuning channel – this doesn’t exist right now, but it’d work – as long as there’s no other performance tuning things happening at the same time. The problem is that I’m also going to use a channel for my general PASS session on Friday, and for sure there will be other performance things at the same time.

I dunno – whaddya think?

Read the Comments

Tools We Use for Remote Work

Blog Posts

A reader emailed in to ask:

We are in the process of trying to move to working remotely more often. I know that your team for the most part are all pretty remote and also work remotely with a lot of your customers. Just wondering if you could give me a list of what technologies you use for conferencing, team meetings, etc.  Also maybe some pros and cons and\or issues you have run into.

Here’s my favorite apps:

  • Slack for chat – we used to use Stride (formerly Hipchat), and it was alright, but Slack gained more traction
  • WebEx for client meetings – because we need something that allows copy/paste between machines, support for Windows and OS X, and both computer audio and phone support
  • Dropbox for file storage
  • Github for source code control
  • Expensify for expense reporting & approval

And that’s pretty much it. We try to run as lean as possible.

Remote work issues we’ve run into

Working by yourself can be draining. If you’re a people person, you may miss being surrounded by other folks and having water cooler chats. Slack mitigates that for me today, but years ago, I preferred coworking spaces.

Get face-to-face online weekly. Every week, we get together on video during our Office Hours podcast and talk shop. We accidentally learned that it keeps us on the same page, lets us have fun conversations, and reminds us that our coworkers are humans.

Get together in meatspace too. Once a year, we go on a week-long company retreat with no client work involved at all. We look forward to planning it and doing it, and we get excited to hang out with each other. (This might not work for every company because after all, the bigger you get, sometimes there’s folks you don’t actually want to hang out with for long periods of time.)

Your Internet will fail, and usually at the time you least expect it. Be armed with a phone, tablet, or hotspot so you can pair your computer to it for brief periods of time.

2017 company retreat in Alaska

De-prioritize your communications. Whenever possible, stick to asynchronous, non-personal communication methods that don’t require specific people at specific times. Here’s my preferred order:

  • Slack message (not direct message) just saying something that anyone could answer or fix.
  • Email message directly to a person – so they can get to it whenever.
  • Direct message or name mention in Slack – because someone gets an immediate, interrupting notification. This is bad form – don’t do this unless it’s urgent.
  • Text – because this interrupts someone no matter where they are.

Set expectations for at-work hours. Employees pick their default working hours (mine’s 8AM-4PM Central), and they’re expected to be around Slack during those times. If you won’t be around, just let the rest of the team know.

When management wonders what remote people are doing, have them swing into Slack and watch. They’ll be able to see what’s happening, and see that work really does get done. (Although also, just like in-person offices, a lot of friendly goofing off happens too!)

Set expectations for off-work hours. When you work remotely, it’s really easy to just keep going for just another 10 minutes, just another 10 minutes, and next thing you know, you’re divorced and your children refer to you as “my DNA relative.”

Read the Comments

How I Manage Email and Tasks, 2017 Edition

Blog Posts

In a recent SQLServerRadio.com podcast episode, @Guy_Glantser and @MatanYungman talked about how they organize their work.

I wrote about how I managed emails and tasks in 2015, and a lot of that is still true.

My work environment

I have two older monitors: an old 32″ QHD primary, and a 24″ 1080p secondary with Slack and Google Analytics:

Desktop circa fall 2017

In our company Slack #general room, we get notifications for stuff like new blog posts, relevant DBA.StackExchange.com questions, and new PasteThePlan entries. We have a separate #development room for stuff like First Responder Kit Github issue changes, check-ins, and Richie’s failed always successful builds.

Slack has pretty much replaced Twitter for me. I have Twitter notifications turned on, so I can reply when someone asks for me, but otherwise I leave it closed except when I’m surfing the web – exclusively for the purpose of building our weekly links, of course. The work I do for you, dear reader.

For background music, I leave one set of (preferably vocal-free) music on endless repeat for hours. Sometimes it’s a single song, and sometimes it’s an album or playlist. I’ve been using Amazon Prime Music because it’s free with my Prime membership. (iTunes is a flaming poop bag on the porch that is my Mac.) Current rotation:

How I triage incoming emails & task requests

The biggest change is that I stopped giving out my own email address, and I give out Help@BrentOzar.com instead. Erik, Erika, and Tara all have access to that account, and they’re all empowered to answer anything that lines up with their area of expertise. That helps us share the load, and we’re able to keep the company inbox at inbox zero. Our GMail processing rules and canned replies are down to an art form at this point.

My personal email is still rougher, especially since I spend days (or for example, the last two weeks straight) teaching classes. I still use the approach described in the 2015 post, sweeping most >5 minute tasks out into RememberTheMilk to handle later. If they’re project-related, I use Google Docs since it does a little better job of managing large amounts of documentation. I would have switched to something like OneNote or Evernote years ago, but the Mac’s Spotlight search works really well (and quickly) for me.

My RTM lists

When I put a task into RememberTheMilk, I put it into one of the lists shown here. (The lists map up to higher-level GTD strategies.)

I used to block out windows in my calendar to work on specific lists, but over time, it’s become so natural that I no longer have to reserve time. Saturday & Sunday mornings are for the Blog and Marketing lists, weekdays 3PM-5PM is for the Recurring and Shopping lists (which is really mislabeled – Shopping includes stuff I need to do around the house), etc.

This way, I know what list I’m going to be working on Saturday morning (and thus the kind of work I’ll be doing), but I just don’t know the specific tasks I’ll be working on in that list.

What “stress-free productivity” means to me

The book Getting Things Done is subtitled “The Art of Stress-Free Productivity,” and one of the big takeaways in the book is that you’re always going to be behind. You have to be at peace with that – your creative mind and your demanding environment will always come up with more tasks than you could possibly accomplish.

I’ve got tasks in RTM that have been in there for years. It’d be nice if I got to ’em someday, but if I don’t, that’s perfectly okay – because I understand that there’s higher-priority items in the list for today.

Read the Comments

Dream Car Track Garage: 4 Cars, $100k

Blog Posts

In my dream car garage series, I’ve assumed that the garage is at home – but what if it’s at the Autobahn Country Club?

Yes, that’s an actual thing. In the outskirts of Chicago, you can get a country club membership at a place where the focus is on the golf carts rather than the golf. Oh, and the golf carts are race cars. And you can buy property and build your dream garage. So what would I put in mine, you ask?

2013 Ariel Atom SRA ($40k)


Jeremy Clarkson made the Ariel Atom famous in his face-bending Top Gear review. This track weapon can be purchased in street-legal spec, as well as in a color that doesn’t look like some kind of Mad Max taxicab, but what’s the fun in that? If you’re gonna get a track car, it should be a track car.

Runner-up: 2015 Ford Mustang GT custom built with a supercharger, 599HP, and track gear. It’s a Jeremy Clarkson special – I’d be yelling “MORE POWER!” as I ripped it around the track. I even dig the digital camo graphics, although not on the interior parts.

1960 Austin Mini ($14k)

Bondo. James Bondo.

They say it’s more fun to drive a slow car fast than it is a fast car slow. Since I covered the fast car with my first choice, this one would be my slow car.

The more typical choice for a fast-slow track car would be any Mazda Miata, especially since you can race in the Spec Miata series against other owners. I’m just not that into racing other people (I’m not that kind of competitive), and more into racing myself, beating my own past times. This would give me a fun way to do that.

And it’s just adorable.

Runner-up: 2013 Morgan 3-Wheeler (or this 2012) – as with the Mini, it’s not exactly a fast car, and in fact it’s a rather terrifying car on a track. Like the Atom, it was on Top Gear too, although with much-less-impressive results – Hammond could barely keep it on the track.

Factory Five Cobra Replica ($26k)

Factory Five Replica

I’m never going to own a real Cobra. It’s just not gonna happen – even if I could afford the seven-figure price tag, I wouldn’t want the pressure of owning one of Carroll Shelby’s original creations, something that I’d have to baby and keep sealed in a garage.

With a Factory Five replica, I’d have all the fun of a Cobra, but none of the pressure. And at $26k, I wouldn’t feel guilty about hooning it around a track, learning to slide it sideways, and have a genuinely good time. I wouldn’t feel guilty about setting up the suspension specifically for the purpose of drifting, something I’m sure would take one heck of a lot of work and money. (There won’t be any drifting in the Atom or the Mini.)

Runner-up: 1997 Dodge Viper GTS. Like the Cobra replica, this isn’t really a great track car if you want to learn solid cornering fundamentals – but that’s what the Atom and the Lotus are for. This 450hp brute is for sliding sideways.

2012 Cadillac CTS-V Wagon ($56k)

Not your father’s wagon

It’s only practical, really. When I’m at the track, I need something reliable and spacious to go fetch tires, parts, and food. The fact that it has 556 horsepower and goes 0-60 in under 4 seconds is completely irrelevant. Also, it has a 6-speed manual transmission.

When “Maximum” Bob Lutz said GM would build the CTS-V wagon, the Internet anointed him with sainthood. There’s no practical reason for this car to exist, which means I’d love to have it. And I’d definitely love to go flying around the track in it from time to time, taking Miatas by surprise. Hell, it’s probably faster around the track than the Factory Five or the Mini (but probably not the Atom.)

This choice does completely blow my budget. Ah, well. Racing’s expensive.

Runner-up: 2005 Dodge Ram SRT-10 6-speed. Truck body with a Viper V-10 engine. Perfectly practical. Sure, you can get a faster truck today with a more conventional engine, but … truck with a Viper V-10? That’s just awesome.

Read the Comments

Designing This Year’s PASS Summit Session

Blog Posts
No Comments

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:

I can’t understand why I never remember our team’s post-session celebrations

  • 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….

Read the Comments