Dream Car Seasonal Garage: 3 Cars, $50K

Blog Posts

We’re up in Michigan, dogsitting for Dad & Caryl while they’re down in Mexico on vacation. Dad & Caryl’s house started as a 1-bedroom schoolhouse, gradually expanded over the years. I absolutely love their garage setup: 2 main cars, plus a side entry workshop garage, plus space to park another few cars.

So I got to thinking – what’d be in my collection if I lived here? And I do mean here, a place where there’s a foot or two of snow on the ground here during the winter. Also, with this area’s history of car manufacturers and suppliers, it’s also a place where American hot-rods get a little more respect.

I started with the usual rules from my Dream Car Garage posts: BringATrailer.com auction sales only, and only closed prices (so you get a feel for the real closing price, not somebody’s asking price.)

1990 Jeep Grand Wagoneer ($10k)

100% not real wood

I bet you think this is my winter beater, but no.

While it does have four wheel drive, it doesn’t have anti-lock brakes, stability control, airbags, or a good chance at making it through a decade of winters without completely rusting through. I’d rather get the existing rust issues touched up, then keep it as a time capsule for running errands during the summer and fall. Can’t you just see this thing doing a fall color-watching tour of Michigan?

Runner-up: 1963 International Harvester Travelall C-1000 Custom ($26k). Way, way before my time, but damn those colors and that wraparound glass look fantastic. I’d probably drive around all winter with a Christmas tree strapped to the roof, complete with red and green lights.

1968 Ford Galaxie 500 XL Convertible ($14k)

Cheaper by the pound

Just a big ol’ convertible to tool around Whitehall, get hot dogs from Dog-n-Suds, and ice cream from Ruth Ann’s. Not a drag racer, not a particularly famous nameplate, just a fun way to get around. The black vinyl interior is gonna burn thighs on a hot day, but it is what it is.

I wouldn’t change anything about it. I’d be so tempted to change the wheels out, but as soon as you do that, then it’s the exhaust, the engine, the stereo, etc. Best to just enjoy this thing for exactly what it is.

Runner-up: 1990 Chevy Corvette ZR-1 ($20k) – the shape on these is aging pretty well. It’d be my #1 pick if it wasn’t for the manual transmission, which would mean Erika wouldn’t be able to tool around in it.

2005 Audi A8L W12 Quattro ($13k)


This is the winter beater. Hear me out.

It’s got all-wheel drive, air bags, and it’s gonna be pretty doggone safe. Well, until you mash the accelerator, that is – the 6-liter 12-cylinder engine produces 450hp and 428 foot-pounds of torque.

The longer wheelbase of the A8L and the luscious leather interior means comfortable road trips to Little River Casino, our family’s favorite place to lose money up here. The car’s a gamble, too: any repair costs won’t be cheap. However, the low entry price means I won’t be heartbroken if I get into a winter accident.

Runner-up: 2002 Mercedes-Benz G-Wagen ($35k) – pretty capable for winter antics, and Erika loves the look of these. Totally unqualified runner-up: 2003 BMW M5. It has no business as a winter beater, and it’s a stick, but holy cow, how are those only going for $18k? They’re going to be incredibly collectible.

And whaddya know, I’ve got over ten grand left over! I’d probably spend it on a winter beater truck with a snowplow, come to think of it. Snowblowing the driveway sucks.

Read the Comments

Free WordPress Plugins I Recommend for 2018

Blog Posts

I recently helped Hugo Kornelis set up a new WordPress blog at SQLServerFast.com, and I realized it’s been a while since I listed the plugins I recommend. Here you go:

Crayon Syntax Highlighter – show your T-SQL code in all its glory. Has an SSMS 2012 theme, and you can set the default language to T-SQL.

Editorial Calendar – I’m a huge believer in scheduling your posts ahead of time. This plugin gives you a drag & drop calendar so you can reorder posts when your priorities change.

EU Cookie Law – because the European Union saves your life by telling you that web sites use cookies. <sigh>

Featured Image Admin Thumb – posts need featured images for certain themes, or when users share your posts on social media. It’s not easy to see at a glance which of your posts are missing featured images – until you get this plugin.

Featured Image Generator – makes it easy to search for free Unsplash images for your posts, plus put a caption over them. There’s a paid Pro version available too that adds more caption capabilities, but the free one alone is great.

Jetpack – handles a lot of common tasks that used to require cobbling together a bunch of different plugins. Commenters can subscribe to updates or all blog posts via email, you get easy-to-digest visitor stats right on your dashboard, and you can even write posts in Markdown. If you want to spring for a little more, the $39/year Vaultpress integration also gives you offsite backups in case your hosting company runs into problems.

Really Simple SSL and WP Encrypt – use free LetsEncrypt certificates to enable HTTPS as a default for your blog, which can make it look better in Chrome and in Google search results.

Those are all free, and armed with just those, you can get one heck of a head start on setting up a professional-looking blog.

However, when it’s time to put a visual theme on your site, I’d lay out just a little cash and get one of the top-selling themes from Themeforest.net. That’s not an affiliate link – they do have an affiliate program, but I wanna make it clear that I’m not making money when you click on that.

I recommend ThemeForest’s stuff because I’ve had such a great experience with them, in particular their top-selling themes. It’s ridiculous how much quality you can get, and how often the top-selling themes get updated. I’m specific about sorting by sales, though – don’t just get any theme, because there’s a ton of themes on there that never get updates.

Read the Comments

2018 Data Professional Salary Survey: Early Results Thoughts

Blog Posts

The 2018 Data Professional Salary Survey is open, and you can analyze the results as they’re coming in. As of this writing, we’ve just crossed 1,000 results (last year we ended up with around 3,000).

Based on your feedback, I made a few tweaks to the questions and answers. I’m going to focus on a quick check of how those tweaks are doing.

We split “DBA” into a few jobs.

Last year, 52% of the responders identified as DBAs, so this year we broke that up into 3 titles. Responses so far:

  • DBA (Development Focus – tunes queries, indexes, does deployments) – 7%
  • DBA (General – splits time evenly between writing & tuning queries AND building & troubleshooting servers) – 32%
  • DBA (Production Focus – build & troubleshoot servers, HA/DR) – 21%

That lines up with my experience with clients: it’s really hard to find experienced development DBAs, let alone ones with devops or SRE experience.

Salaries reflect that, too. In the US, all 3 of these jobs average 7 years of experience, but the dev DBA average salary is higher (caveats about using average instead of median apply, but on the road I’m working with Excel at the moment):

  • DBA Dev – avg $113k
  • DBA General – avg $107k
  • DBA Production – avg $104k

We added gender.

So far, 10% of the responses identify as female. Hopefully that means we’ll get a big enough final sample to make it meaningful for folks who want to analyze the data by gender.

In the early ~1000-response cut I’m working with, there are 579 US males, 83 US females, and 58 of those are DBAs. I only did a quick check of the numbers, and I’m by no means a data analyst, but I think there’s going to be some interesting community discussions around the data.

We added a career planning question.

My career plan for 2018: figure out how to afford a case of this

The results are neat! In this early cut, all jobs worldwide:

  • 7% plan to change both employers and roles
  • 11% plan to stay with the same employer, but change roles
  • 11% plan to stay with the same role, but change employers
  • 65% plan to stay with the same employer, same role
  • And the rest are playing it close to the vest

But focus it on just US DBAs, and 73% plan to stay with the same employer, same role. Only 14% (not 18%) plan to change roles. (Developers, on the other hand? Only 61% of them wanna stay in the same role, same employer.)

It’ll be fun to watch folks slice & dice that to figure out if there are meaningful trends here.

Head on over to take the survey, and set up your analysis on the raw data format. As with last year, after the final numbers are in, I’ll publish a roundup of the community analysis posts at BrentOzar.com. It’s a nice way to get a traffic boost and get the word out that you’re good with them there numbers.

Read the Comments

My 2018 Learning Goals #tsql2sday

Blog Posts

For this month’s T-SQL Tuesday, Mal asked us to blog about our 2018 learning goals. Her homework assignment included these 3 questions:

What do I plan to learn?

I like being at the cutting edge, learning things today that people are going to pay a lot for 5-10 years from now. I like to skate to where the puck is going. If a technology is already popular, then it’s too late for me to start learning it.

In the early to mid 2000s, that meant learning virtualization, which paid off really well as that grew wildly in popularity. Then around 2008, I switched to working with SQL Server in the cloud, and that’s obviously doing well these days. Good bets there.

After working in production in the cloud for more than a year or two, the next move is always totally obvious: cost reduction.

It reminds me of a company I worked for long ago back before cell phones were popular. This company would go into hotels, get a copy of the long distance phone bill, analyze it, and then say, “If you pay us $X, and let us manage your phone contracts, we guarantee that your phone profits will go up at least $2X.” It was a total no-brainer for the hotels, and the company did really well.

That same business model is coming in the cloud.

Your company’s cloud bill can go down based on the changes you make. If you can tweak the right 5 stored procedures and add the right 7 indexes, you might be able to change your instance size and see the savings the very next day. That’s awesome for consultants – I can say, “Based on the metrics I’m seeing, I guarantee this engagement will pay for itself within the first X weeks, or your money back.”

But app & database changes are a whole lot harder than negotiating phone contracts.

The biggest obstacle to reduced cloud costs is getting people to actually take the necessary actions – putting the proc or index changes into production.

So for 2018, I’m learning to implement gamification techniques. I’m not ready to talk about the specifics yet, but let’s take sp_Blitz as an example: what if you could earn badges and points for fixing problems on your SQL Servers? Or earn badges for facing a really unusual issue? What if you could show your boss your server management score and track it over time? What if you could compete on a leaderboard with other people managing SharePoint servers to see how you were doing?

How & when do I learn?

I like learning WHY to do something by listening to podcasts. I walk Ernie ~10 hours per week, and I like using that time to learn from people in different disciplines. Startups for the Rest of Us is one of my favorites.

I like learning HOW by putting my hands on stuff. I teach classes, write blog posts, and record videos to teach other people how to do things, but I hate learning those ways myself. I’d rather take a product, read a walkthrough example, do it, and then try to break it. Purposely breaking and fixing stuff is my favorite way to learn.

For 2018, this means building gamification experiments, running them in small batches with a limited audience, and then using what I learn to run the next experiment. The great thing about having an email list with ~100K people is that I can pretty quickly run small, private 100-person experiments and surveys. Then, after several iterations of that, I can run progressively larger experiments with maximum results.

How do I plan to improve what I learn?

Mal’s blog post talked about sharing what you learn with the community, and of course I’m all about this. But in 2018, I wanna take things to the next level: I don’t just want to improve your skills, but I want to be able to measure how much our servers improve across the entire community.

I don’t just wanna improve what I learn. I wanna improve what you do. I feel like some kind of twisted data center dungeonmaster, hahaha.

Read the Comments

GroupBy’s One Year Anniversary and What’s Next for 2018

Blog Posts

Last year, I unveiled GroupBy.org, a new free community event where anybody could submit a session on any topic, and the attendees would vote to see what sessions made the cut.

I had a lot of questions when we started. Would people submit sessions? What kinds of sessions would readers vote for? Would they prefer attending live, or getting the recordings?

When the event first took off and got a lot of abstracts and attendees, I purposely took my hands off the wheel and started letting the audience decide where things went. I stopped doing marketing, stopped pushing for abstracts, and watched to see what the community latched onto. (After all, this is just a fun experiment for me, not something that needs to see an ROI.)

With 5 events and over 50 sessions under our belt, let’s look at a few metrics and talk about what I learned.

What I learned about the session submission process

I wanted to make it easy for people to submit an abstract, get feedback on it, and have it automatically eligible for several rounds of voting for successive events. I didn’t want speakers to have to re-submit every time – I know as a speaker, I usually submit some of the same talks over and over. No sense in reinventing the wheel.

So the number of 115 abstracts submitted for 5 events sounds low, but I was happy with it. We had more than enough to have competitive voting. We’re not overwhelmed with abstracts, but we don’t need to be.

However, I had to modify the “automatically re-submit it every time” part – we ended up with a few abstracts that the presenters weren’t refining based on feedback, and weren’t doing well in the voting, so it didn’t make sense to keep ’em around.

I’m comfortable with where this is at, and we’ll stick with this for 2018.

What I learned about the peer review process

Only 486 comments have been left.That 486 number is deceivingly high, too, because it includes comments left on sessions after they went live.

In the beginning, abstract review was loud & lively, but this has definitely tapered down over time. The new-abstract feedback is pretty dang silent. I let this go to see if folks would pick it up, and they definitely didn’t – not their fault, the site just doesn’t give reviewers the tools and incentive they need to talk about an abstract.

I think if this is going to be a big goal going forward, I need to make it easier for reviewers with a better web site structure for it. To me, success for GroupBy means growing the next generation of speakers, and we need collaborative abstract review to make that work well. I’m going to put some thought into this during my next personal retreat to figure this out.

What I learned about voting

We initially started with the readers rating sessions individually, and then taking the top-rated sessions. That was a lot of work for readers, though, so we switched to just letting them vote and pick their favorite 10. I’m very happy with how that’s going – the events have been a neat mix of SQL Server topics.

When I first unveiled the anything-goes format of the event, I was actually worried that the topics might suddenly stray way away from SQL Server, like into pure development (C#, Java) or into systems administration. That didn’t happen – the top voted sessions focused on the Microsoft data platform.

I like this a lot, and I have no plans to change it in 2018.

What I learned about the event itself

When I first started it, I was the only cohost because I wanted to show folks what I meant by cohost. Later in the year, I invited past presenters to be cohosts (since they understood how the event worked,) and that worked really, really well. At last week’s event, I stayed online the whole time and popped in for intros & breaks, and I’m there as a backup, but I wasn’t on camera for any of the sessions. I’m really happy with that because it makes the event more sustainable – it can keep working even if I’m not around.

For audience Q&A and chat, we started with using a hash tag on Twitter, but that experience is miserable. Folks don’t want to set up a hash tag monitor column in their Twitter client, they forget to include the hash tag, they can’t ask long detailed questions with threads, etc. We switched over to using the #GroupBy channel in SQLslack.com, and that’s been great, ~600 folks in there now. (Plus it gets more people into the community Slack, which is good – this whole thing is all about getting more people into a sustainable community.)

The session length was a really big experiment. We started with sessions starting every 2 hours, but length was anybody’s guess – presenters could do anything from 45 minutes to 90 minutes. I wanted to encourage a really casual event with long onscreen chats during the breaks.

However, presenters thought they HAD to produce 90 minutes worth of material. While I’m all about free training, I also want this event to be about new speakers getting their feet wet, and 90 minutes is just way too long for first-time presenters. For December’s event, I let presenters pick their session length, encouraging them to do shorter ones.

For 2018, the events will start at 8AM Eastern, and a new session will start every hour. (That means sessions need to max out around 45-50 minutes.) In my own online training experience, that’s felt like the max length of time people can go without a bio break. New presenters will get a single 45-minute spot, and repeat presenters will get the choice of 1 spot or 2. Even if they choose 2 spots, though, it’s still going to be 45 minutes, then 15-minute bio break & chat, then another 45-minute spot.

What I learned about the recordings

Folks are definitely consuming ’em. Stats for 2017, not including the December events:

  • GroupBy YouTube channel:
    • 1,341 subscribers
    • 13,052 hours of video watched (meaning on average, 1.5 people are watching a GroupBy video at any given time)
  • GroupBy Podcast: 34,681 downloads
  • Web site visitors: 43,026 users, 84,100 sessions, 163,042 pageviews

I really wanted presenters to have a page they could be proud of, with multiple ways for readers to consume their work: video, audio podcast, and transcription. I’m happy with the video & audio, but the transcription is just a big wall of text. We’ve tried having volunteers edit it, but it’s a lot of work, and we need a good, consistent result. Further, we need a timely result, because…

In 2018, each session recording will have one coordinated release date when:

  • The podcast is released into the GroupBy feed
  • The transcription is complete, including headings and screenshots
  • The audio/video/transcription post is released into the blog feed and email newsletter
  • The presenter will be notified of that date ahead of time so they know it’s coming

Our super-awesome podcast partner, Digital Freedom Productions, has already put most of the building blocks into place, but the bottleneck is me (or the volunteers) doing the headings & screenshots in the transcription. To fix that, I’ll hire a part-time editor from the SQL Server community – more on that soon.

Read the Comments

Some Large Businesses Like to Work with Other Large Businesses.

Blog Posts

Our human resources team

Small businesses usually like working with other small businesses.

Similarly, large businesses working with other large businesses.

During the sales process, small businesses tell me things like, “All the decision-makers are on this call” and “Let’s move forward with this right now. What do we need to do to start tomorrow?”

Large businesses are more likely to say, “Please fill out this 26-page PDF to be eligible for a bidding process that will start in three months.”

I’ve long believed in this as a kinda-sorta unwritten rule, but I got an email (and a bunch of paperwork) from a prospective customer that opened my eyes about just how seriously large companies take this. The technical folks were already sold and selected me as their vendor – but then they hit a brick wall when they tried to talk to their internal purchasing team. There was a lengthy internal discussion on a separate email thread, but someone accidentally (?) forwarded me that thread. It included this gem from their purchasing team:

Typically we would like to ensure we issue out this questionnaire at the outset, to make sure we’re dealing with serious vendors and to set the tone.

The attached “questionnaire” required our credit records – okay, sure – then diagrams of our quality management process, explanations of how we administer our health and safety policies, and more things that would have taken me days to produce.

That’s how some large companies see independents and small businesses, dear reader: someone who has no choice but to fill out paperwork to jump through hoops so they can “set the tone.”

I didn’t realize that back when I first started consulting. The technical teams at Ginormous Corporation would get all excited to work with me, and then they’d contact their purchasing team, and suddenly the avalanche of paperwork would start. I kept thinking, “If I just fill out this one last form, I’ll be past all the hurdles, and I’ll be in for life!” It does indeed work – but just be aware that sometimes it’s a lot more paperwork than it looks like at first glance, and some companies even have ongoing vendor certification renewal processes.

With that in mind, I try to be a great customer for other small businesses too, like our artist, print shops, accountant, etc. I try to make their lives as easy as possible – because after all, they’re making my life easier, too.

Read the Comments

What Specialists and Generalists Get Paid For

Blog Posts

Generalists say things like, “Yeah, I’ve done something kinda like that before, and I’m sure I can figure it out again.”

Generalists get paid to learn new things fast and adapt.

Specialists say things like, “Yeah, I did that exact same task last week, and I know it forwards and backwards.”

Specialists get paid for things they already know very well.

Generalists are generally useful.

Armed with a good set of generalists, companies can generally tackle most IT problems that come their way. As a company’s tech stack changes, the generalists can learn new skills and stay productive. Therefore, generalists get hired first, and stick around for a long time.

If you’ve been a generalist for a year or two, you probably already have all of the technical skills you need to get your next job. You’re not hired for the technical skills you have today – you’re hired for the ability to rapidly learn new technical skills. It doesn’t make sense to dive deeper into any one technical stack thinking you’ll improve your hiring chances.

I get paid in query bucks

To get a job, generalists need to know somebody, or be able to tell this story:

  • I listen well to my end users and managers
  • I can quickly interpret the underlying problem
  • I rapidly learn just enough of the technical tools to solve the problem
  • I only do the work required to solve the business problem
  • I make sure the users are delighted with the outcome
  • And then I listen to hear the next pains, prioritizing them as they arrive, keeping as many of my business users as possible, as happy as possible

You probably don’t need to do this via blogging, building a big online presence, or speaking at conferences. You can have a relatively limited number of clients (like, 1 if you’re a full time employee) and do really well for a long time.

But when the generalist can’t solve an expensive problem, that’s when a specialist comes in.

Specialists are first brought in for brief bursts of work.

Most of the time, specialists would be bored at small-to-midsize companies. For example, companies with only 1-2 database servers don’t usually need a full time database administrator. When an expensive database problem pops up, companies just want to hire someone who’s already solved that very specific problem before, and can make it go away quickly.

Once the problem is solved, the relationship can end, and the company can go back to using their generalists. If the company gets big enough, they may keep a specialist around permanently – but it definitely isn’t their first choice, and they’d usually prefer to turn that specialist into a generalist, giving them other kinds of tasks to accomplish.

That means the career advice for specialist consultants is different: it’s not enough to be technically strong. You have to build your online presence. You’re going to be repeatedly going through the sales process, over and over, unless you specialize in large companies who have lots of problems in your specialty. (Even then, it’s rare to be an independent consultant for them – large companies prefer hiring other large companies.)

You can’t afford to wait for your current gig to finish – you have to start now. Start a blog, start presenting at user groups, and share what you know.

Neither generalist nor specialist is better.

Being either a generalist or a specialist doesn’t dictate your employment status as a contractor, consultant, or full time employee. However, generally I find that generalists are FTEs or contractors, and specialists tend to be consultants. (Specialists can totally become FTEs when a company is big enough to have big, expensive problems for long periods of time, too.)

You can make good money whether you’re a generalist or specialist, too. I’ve got a couple of friends who do really well as generalist consultants, giving companies application architecture advice across lots of disciplines, working in an advisory role in short-term bursts.

Personally? I used to be a generalist until I found a specialty I wildly love (making existing Microsoft SQL Servers go faster.) These days, I have a razor-sharp focus on that, and I’ve found myself shedding any work that doesn’t directly relate to that.

It’s not that I can’t build a new server from scratch, for example. I just want to focus on the very specialized work I do week in and week out, tasks that we’ve developed very specialized tools to help us with. We’re able to do those tasks way faster than a generalist could, and companies see high value in solving that expensive problem fast.

Some of my favorite podcasts on these topics:

Read the Comments

My #PASSsummit 2017 Session Evaluation Ratings & Comments

Blog Posts

After big conferences, I like to share my session evaluations to talk about what worked and what didn’t. Let’s see how we did this year.

PASS’s evaluation form this year had 6 questions with a 5-point ranking (I love that):

PASS Summit 2017 evaluation form

So how’d we do?

Pre-Con: Expert Performance Tuning for SQL Server 2016 & 2017

This was an all-day session I co-presented with Erik Darling. 362 attendees, 152 surveys filled out – great completion rate, thanks attendees!

  • Rate the value of the session content. 4.37 out of 5
  • How useful and relevant is the session content to your job/career? 4.37
  • How well did the session’s track, audience, title, abstract, and level align with what was presented? 4.31
  • Rate the speaker’s knowledge of the subject matter. 4.83
  • Rate the overall presentation and delivery of the session content. 4.20
  • Rate the balance of educational content versus that of sales, marketing, and promotional subject matter. 4.32

Ouch. If you’re not a frequent speaker, those numbers might sound good, but they’re actually not so hot in the grand scheme of things. So what went wrong? Let’s check out the comments:

Event logistics comments: (room temperature, size, capacity, sound, etc.):

  • Sound – feedback present during 1st half. Video monitors cut out all day.
  • The screens keep loosing picture quite often
  • minor issue with screen, otherwise good
  • Issue occurred with video screens going in and out.
  • The projector kept flickering off briefly throughout the session.
  • Beamer disconnects continuously
  • Picture problems, flickering screens
  • No real complaints here. A little tight on space but a sell out will do that.
  • The projection screens repeatedly flashed to a blue screen.
  • The presenters were distracted at times because of technical issues with the room technology
  • Better than monday
  • The projectors frequently cut in and out during the presentation
  • The screen flicker and microphones made it challenging.

Ugh – and I’m not even showing all of them, there were dozens more of these. The AV was extremely frustrating, and I heard similar issues from other presenters.

For the “Session or speaker comments,” I’m going to group these together by theme:

As a reminder, here’s the abstract:

Expert Performance Tuning for SQL Server 2016 & 2017

Your job is making SQL Server go faster, but you haven’t been to a performance tuning class since 2016 came out. You’ve heard things have gotten way better with 2016 and 2017, but you haven’t had the chance to dig into the new plan cache tools, DMVs, adaptive joins, and wait stats updates.

In one fun-filled day, Brent Ozar and Erik Darling will future-proof your tuning skills. You’ll learn our most in-depth techniques to tune SQL Server leveraging DMVs, query plans, sp_BlitzCache, and sp_BlitzFirst. You’ll find your server’s bottleneck, identify the right queries to tune, and understand why they’re killing your server. If you bring a laptop with SQL Server 2016 and 120GB free space, you can follow along with us in the Stack Overflow database, too.

This is not an introductory class: you should have 2-3 years of experience with SQL Server, reading execution plans, and working on making your queries go faster.

When Erik & I wrote the abstract, we wanted to make it clear this was not a 100-level session: it was specifically for experts. We were going to cover a lot of complex stuff, fast.

Content & pacing comments:

There were dozens more than this on the same themes, just trying to pick a representative sample:

  • content was a bit too in depth and so many demos that it was hard to follow
  • Very informative. Liked the format of going through the different dmvs. Also the detailed discussion regarding nested loops and hash match.
  • This was a session for people with an understanding of SQL Server. There was a lot of ground covered. At times Eric’s enthusiasm caused him to rush his delivery and it wasn’t always possible to find the information on the screen before the content was changed. That made it a little challenging to keep up. Fortunately both Eric and Brent have provided excellent resources. It is a LOT of information. What is obvious to presenters who know the material only too well from working with it, is NOT obvious to attendees who are seeing a great deal of it for the first time. Pacing is important to ensure we can all follow along.
  • Brent and Erik did a great job
  • Nice interactive session. Eric sometimes goes at blazing speeds.
  • Do not advertise that there are benefits to ‘installing SQL Server 2016 and following along the examples’… the way the pre-con was presented made it impossible to learn from a hands on approach and was treated to a blitzkrieg of demos (an example of too much content for the time allocated).
  • Erik is fast. A bit too fast. I found out at lunch that I wasn’t the only one who was having trouble keeping. Especially when flipping between screens, results, execution plans, etc.
  • Overall I am very happy with the demos and materials prepared and shared for the course.
  • A lot was covered so while it was good things moved quickly at times clicking on items to show the crowd happened too fast because the time to hear what was said to look on screen was too short. Couldn’t keep up with seeing what was being said. Session was well worth the money!

When Erik & I talked about this afterwards, we agreed that we went way too fast, and went too far in depth for a 1-day class where the public can sign up with no prerequisites. It’s really tough to balance this – everybody says they want expert-level material, and they want a lot of topics covered in a day, but there’s going to be a lot of people who overestimate their expertise level when choosing a pre-con.

For the SQL Bits delivery, we’re using a lot of these comments to help reshape some of the delivery. We’ll scale back on the level of detail, and introduce the topics more gradually.

The funniest part is that after the pre-con finished, Erik & I brainstormed on next year’s pre-con and thought we’d do an entire day on advanced parameter sniffing causes & solutions. However, several of the comments said we spent too much time on parameter sniffing, hahaha. It’s one of our favorite topics, and we could probably even spend a week on it. We may have to revisit that plan.

Slack Q&A:

  • Brent and Erik’s presentation was packed full of useful tools and concepts. The inclusion of the slack channel for questions, comment, and side thoughts was an awesome idea.
  • Slack was a cool add-on for conversations.
  • The slack channel was an awesome idea. Really helped with quick fire questions.

Yay, that worked.

Advertising comments:

I’m always really conscious of this and start the session by saying look, we don’t want your money: this session is about teaching you to use the same free open source tools we use every day. (They’re even mentioned by name in the abstract, and I had to go to bat with PASS to make sure of that – I wanted attendees to make sure they understood that we use tools.)

There weren’t a lot of comments on this, but as a presenter/blogger, I think it’s important to mention that they’re out there, because this is a reality when working with company-sponsored open source projects:

  • Way too much on the custom procedures from the company. While I think they are wonderful, I can’t use them in my environment so more content on how to help myself would have been much better. Maybe cut that down to 1/2 hour and add more information using standard sql content. Nuggets of wisdom were a little hidden in the extraneous information. Had I known I may have chosen another precon.
  • Brent — I know your not supposed to toot your own horn (too much). But I say a.) they free and b.) they are some of best (if not the best) scripts for trouble shooting I know of. So TOOT AWAY.

I’m a firm believer that in the year 2017, you shouldn’t be writing your own DMV queries from scratch. I’m determined to drag folks into the open source community to learn to share their work and leverage the shared work of others. We’re not going to be like those other database platforms where the DBAs try to hide their work so no one else can take advantage of it. We’re a community – let’s share like one.

So I know I’m going to get dinged, and I’m okay with that.

Humor comments:

  • Brent and Erik are both incredible speakers with outstanding sense of humor. They really make an all day session fly by.
  • The humor injected into the presentation was great for helping keep the audience enganged during what could otherwise be a very dry topic.
  • Session content is solid, but the constant need for cheap laughs kinda wears you off during the course of the day.
  • Love the sense of humor
  • Both speakers were exceptionally knowledgeable and made the topic very entertaining and engrossing. And I’m not just saying that because I earned Query Bucks.
  • There were tasteless image references to drugs, a man holding a syringe, ‘boy it is gross’, a dog sniffing illustration. I expect more professionalism in presentation and materials. Perhaps you can get away with it if the class was free, but 360x$495 a person adds up to serious professional grade show. Step up to the plate to make it worth what paid for and get the messages on point, instead of distracted by tasteless images.

I’m happy with the balance of comments there.

In summary, I’m happy with the ratings overall. Here’s what we’re tweaking for Bits:

  • Reduce the number of topics covered, and introduce each topic more gradually
  • Shorten modules up from 90 minutes to 45 minutes, giving people more breaks
  • Alternate presenters back & forth between me & Erik to liven things up
  • Publish a link to a small version of the Stack database ahead of time so people can get their laptops ready in advance, and see if they’re actually fast enough to follow along with the demos
  • Reduce the number of cheap laughs, and switch to much more expensive laughs (I’m thinking jokes about Oracle and SAP)

General Session: “But It Worked In Development!” – 3 Hard Performance Problems

485 attendees, 131 survey responses:

  • Rate the value of the session content. 4.85 out of 5
  • How useful and relevant is the session content to your job/career? 4.78
  • How well did the session’s track, audience, title, abstract, and level align with what was presented? 4.85
  • Rate the speaker’s knowledge of the subject matter. 4.95
  • Rate the overall presentation and delivery of the session content. 4.94
  • Rate the balance of educational content versus that of sales, marketing, and promotional subject matter. 4.77

Woohoo! Love those numbers.

Event logistics comments: (room temperature, size, capacity, sound, etc.):

  • The room was sized right and comfortable.
  • the room was packed!! Don’t blame the PASS organizer however, since it was held on the largest room and it was still full house. It truly speaks how good his sessions are.
  • Room was probably not large enough for Brent’s massive following.
  • No issues, Brent could have filled the keynote hall
  • Wish it had tables.
  • Sound system was’t that great for main speaker.
  • room was full but the sound was good.
  • Sound was a little lower then optimal and it was hard to hear at times.

With ~500 folks, you’re gonna have to have a huge room, and that means some people are going to have great video/audio, but late-comers at the back won’t. (Tables are out of the question if you need to fit that many people in a room, unfortunately.)

No projector issues though! This was the exact same room Erik & I were in on Tuesday, and it sounded like the AV techs finally had the event fixed up by the last day of the conference when I spoke.

Comments about having Pinal onstage to ask questions:

I tried a new trick this year of bringing Pinal Dave up on stage with me to be an audience member, asking questions. Here’s what attendees wrote:

  • Great idea having Pinal Dave as an audience representative.
  • Excellent. I loved loved loved what Pinal brought to the session.
  • I liked the idea of having one person giving questions, great management of a large audience.
  • Watching Brent talk is like going to a DBA theme park… DBAland! Tons of fun. Pinal Dave was the perfect straight man, they make a good team.
  • The tone of this session was great – light, fun, practical, informative. Didn’t think having Pinal up on stage worked. Would rather have questions come up more organically. I realize the crowd size can make that difficult but it just felt artificial to me.
  • I like the way he invite collegue for faq.
  • Excellent! I have been challenged with some of these issues, so this was very helpful. Also, having Pinal was an added bonus – Thanks!
  • Brent is always a knowledgeable and entertaining speaker. Pinal’s appearance was a great addition.
  • Great format, great sense of humor, and great concept in a large room like that, having a representative question asker on stage with you!
  • Brent is always entertaining to listen to. Really liked that more unique issues were addressed. With big room, great idea having a cohort to ask questions
  • Interesting twist having a qualified independent person on stage asking questions. I really liked it here but may not work for other types of presentations. Thanks!
  • I thought the questions from Pinal were really helpful
  • Liked the addition of Pinal Dave to help ask questions that people in the audience would ask. It helped make it a little more conversational and made it more interesting to listen to. Very entertaining! But i also liked how it was still focused to just 3 main points instead of trying to cram too much info in.

There was exactly one negative comment about the technique. That’s awesome! Thanks again, Pinal – you did a great job.

Content comments:

I wrote this session with only a few slides to explain concepts – the rest was done in one big long demo script. I try to write my demos the same way I talk, explaining the concepts in the T-SQL as I go so that people can follow along later as they run the queries.

Then, at the start of the session, I explain that the demo is open source, and here’s where you can go download it from. That way if you miss stuff, you can revisit it later. Here’s what folks wrote – not a lot of stuff, but I’m not surprised because they tend to just bookmark it and come back to it later:

  • Lots of information to absorb in 1 session but appropriate for the target level. I would love to show the demo to my team as a lunch & learn but I can’t use BitTorrent at the office to download sample database. Is it possible you could make a compressed backup file available of a database with just the Users table? In the meantime I’ll probably try to create my own table to simulate the example so I can do the demo.
  • I felt this was too basic to be 400.
  • As always great job! I really like how you comment in your demo scripts.
  • Liked the presentation followed inside the SQL script with comments – made it easier to follow.

Cool. I was worried that the pacing might be too fast, but it seemed to work here.

Delivery comments:

  • Well, it’s easy to identify good points about any session Brent does, but not really find any issues to improve. The material was relevant and easy to take in and see how I can use it right away at work. And the session was fun. But Brent always teaches first and the laughs are just a bonus.
  • Keep it up- jokes make it work optimally.
  • Enjoyed the jokes and humour during the presentation.
  • Brent is always entertaining…makes it worthwhile even if its not going to be life altering information
  • Simply the best. Cannot even think of any improvement. Thanks!
    Usually I don’t find your jokes funny, but today you were really on. Great content and presentation.
  • Best speaker and demo
  • Full of energy! Worked very hard and did an excellent job at explaining the subject matter.
  • Excellent job at relating technical information in a more comprehensive manner.
  • Complex stuff explained with humour.
  • By far the best session in pass summit 2017
  • Very useful and impressive demo
  • Best speaker EVER
  • This was simply the best session I attended throughout the whole week. Brent Ozar is truly the best speaker as well as best performance tuner today. His lecture delivery as well as sense of humor are absolutely the best. Please bring him back next year!!
  • Best session of the conference! I couldn’t imagine anything done different, it’s exactly what you hope for in a presentation.
  • Brent should be a PASS icon. It would be a shame not to have him here as so many people like his presentation. It’s hard to come after Kendra but Brent’s humor and wit along with Pinal Dave made it great.
  • The good: The best session I attended at this conference. The combination of deep, and very useful to my job, technical dive … but presented with such great humor, plus bringing Pinal on stage. Brilliant. Learning SQL with LOL. Maybe an acronym brewing there. And Brent highlighted other SQL community member’s open source work too (Adam Machanic and Eric D). Unselfish, and sharing, promoting other’s work, as key parts of the demo. Totally what PASS community should be about.

Well, looks good. I’m a happy camper.

Read the Comments

#PASSsummit Session Q&A Experiment with Pinal Dave

Blog Posts

When I’m speaking at a conference and the room assignments are published ahead of time, I look at the convention center’s room layouts to figure out how many seats it holds. I want a rough idea of how easy (or hard) the Q&A will be to manage.

At this year’s Summit, Erik & I had room 6B for our pre-con, and I had the exact same room for my general session on Friday. From the capacity list pages, you can’t tell how the rooms will be set up (there’s so many ways to set up a room with chairs/tables/rows), but you can at least get a rough idea of what kind of space you’re in. (The word “ballroom” = “terrifying.”)

Slack worked really well for our pre-con questions.

For our day-long pre-con, we used Slack to handle the Q&A. That worked really, really well – attendees were chatting with each other all day. Between Erik & me, whoever wasn’t presenting was watching Slack, answering questions. Then when a good question came up, the Slack presenter could look up at the real presenter and get their attention at a convenient moment. That was fantastic – instead of scanning 300+ attendees to figure out who’s got a question, we could just look at each other and know if we needed to pause for a break.

My general session (boy, is it rare and awesome for a speaker to have a photo from this camera angle)

I wholeheartedly encourage this technique for 2-person pre-cons – it wouldn’t really make sense for 1-person presentations.

It also doesn’t really make sense for general sessions (even with 2 presenters) because it takes too long for new audience members to register for a Slack invite, sign up, open the web app, figure out how it works, etc. If they’re not there right at the beginning of the session, it simply won’t make sense and they’ll be lost.

I needed a different technique for my general session.

In a room with hundreds of people, it’s hard to scan faces to catch questions. People are also hesitant to raise their hands. Even when they do ask questions, it’s usually hard to hear them, and you spend a lot of time saying, “What? What? Can I repeat your question to make sure I heard it correctly?”

The answer came when my friend @PinalDave, aka SQLauthority.com, emailed me to say that he hadn’t gotten selected for Summit this year. (I was bummed – Pinal’s GroupBy session was one of the best webcasts I’ve had the pleasure to watch, and he’s a naturally gifted presenter.)

I knew right away what I wanted to do.

I wanted Pinal up on stage with me as an audience member.

Pinal taking a selfie while onstage with me, hahaha

I asked him to come to the session, and I’d bring him up on stage, introduce him, give him a microphone, and tell him to ask any questions that came to his mind while I was presenting. I didn’t show him the deck or the demos ahead of time – he walked in just knowing the abstract, and that was it, just like any audience member.

This could have been really risky – after all, when you co-present with someone, you normally want to rehearse everything a lot to make sure you get the timing and material just right. This was the exact opposite: I didn’t want Pinal to know anything about my stuff, just like the audience didn’t know. There’s risks in a bad question-asker, too – if you’ve presented before, you know how having the wrong person ask questions can go horribly awry and derail your entire session. There’s a danger in bringing some people up onstage and handing them a microphone.

However, there is no danger in giving Pinal a microphone. The man is gifted.

It was amazing, and we had a great time.

I could see that Pinal was nervous at first – I could see him thinking, “Am I asking too many questions? Am I asking enough? Is this question too basic? Is it too advanced? Should I just be quiet?” (Just like you, dear reader, when you raise your hand at a conference.)

I kept encouraging him, though, because the questions were perfect! I kept saying, “GREAT QUESTION!” when he asked questions because they were exactly the kinds of questions I would ask if I was in the audience. I was so excited.

For example, while I was demoing resource_semaphore problems due to memory pressure, he asked about the low memory available in my VM, and if the problems would go away on a real server. I got so excited because it perfectly led into the session’s flow, allowing me to go spelunking in the execution plan to show that the query would have killed even a monster server.

The audience seemed to love it too – lots of people tweeted & talked to us afterwards gushing about how much fun it was. Many of them thought we’d rehearsed the questions & answers ahead of time because it seemed so natural, hahaha. Not sure if that’s a good thing or a bad thing!

I can’t wait to see the recording. I’m proud of that session experience, and I couldn’t have done it without you, Pinal. Great job, sir.

Read the Comments

Building the BrentOzar.com 2017 Black Friday Sale

Blog Posts
1 Comment

In 2013, just for fun and with almost no forethought, I announced the company’s first Black Friday sale. I figured that I love shopping for Black Friday deals online, and maybe other SQL Server people would get a kick out of it too.

The first year was mostly for fun, but it turned out people loved it. I put more and more thought into it in over time, like starting the sale earlier (because a lot of corporate folks wanted the ability to get in on it, but getting pricing approved at midnight on Black Friday wasn’t gonna happen.) Gradually, November training sales turned into a pretty big deal:

  • 2013: $52,780
  • 2014: $84,577
  • 2015: $167,728
  • 2016: $181,457

I’m sure 2016 could have been higher, but when sales opened at midnight, the web site fell over due to the load, and stayed down for almost two hours. That night, I resolved to take our web hosting to the next level for the next Black Friday sale. We’d been on a $600/mo Premium plan at WPengine, and that was more than enough horsepower for most of the year – but not Black Friday. Takes money to make money.

When I was planning my Epic Life Quest goals for this year, I asked myself, “What would a really ambitious and challenging November sales goal look like? And what would it take to hit that goal?” I figured selling $500K in training would be really, really hard to pull off.

So I went to work.

I added new courses and instructors.

I planned my all-new 2018 training class lineup to coincide with the Black Friday sales. I’ve been gradually building a larger training library over time, and this year I split our 4-day performance tuning class into 3 separate 3-day classes, all with hands-on labs. I also added a ton of other value-adds into the courses, like looking at the students’ production server data by way of an app we built to collect their data. In all, the classes were bigger & better, and I wanted to combine the Black Friday excitement with this new class excitement too. I had about 3-4 days of work in setting up all these 2018 online classes at once, and I had to do it all in advance because…

I added a new 2018 Live Class Season Pass. With our self-paced recorded training videos, our Everything Bundle has traditionally been our biggest seller. There’s a chunk of the market that just wants to swipe a credit card once (or do one purchase order) and get all of their training approved at once. I figured, “What if they’d do the same thing with live training classes?” I priced the Season Pass as the same as 2 3-day classes – and then students could attend lots of classes all year long, continuously upping their game. Since I had the entire 2018 class lineup set in stone and visible online, people could justify buying a Season Pass.

I added guest instructors. Edwin Sarmiento ran the first guest instructor class earlier this year, and it went really well. Our marketing tools plus his content combined to be a profitable relationship for everybody. It organically snowballed from there – we ended up with guest courses from Andy Leonard, Anthony Nocentino, Drew Furgiuele, and Steph Locke too.

I planned changes to the recorded video classes. Eagle-eyed readers will spot that I’m not doing the Senior DBA Class anymore. That will be moving into the recorded videos only rather than being a live class. More news on that as we approach the launch of that.

I built a marketing calendar & launch sequence.

Back in September, I had to design a marketing calendar: the things I wanted to communicate, and the dates I wanted to communicate them. For this year, I wanted to build a several-part launch sequence using the “Building a Killer Email Launch Sequence” guide by Startups for the Rest Of Us. It was going to be about a week of emails & blog posts leading up to an open-for-registration launch day.

I looked at the other events on my calendar:

  • Nov 1-3 – PASS Summit (it’s hard to get marketing news out during this time because there’s so much noise)
  • Nov 4-12 – Vacation (I’d already planned to be in Cabo)
  • Nov 20-22 – Thanksgiving lead-up (hard to get marketing news out here too because less people are paying attention)
  • Nov 24 – Black Friday

So I decided to split the launch into two parts:

  • Oct 24-31: email launch sequence
  • Nov 1: instructor-led training class sales open
  • Nov 16-22: subscription training launch sequence
  • Nov 24: Black Friday doorbuster sales on subscriptions (Everything Bundle)

Then, I started working on my launch sequence for the instructor-led training classes:

When the first email/post in the sequence went out describing the pain points, it generated 45 comments and hundreds of email replies. I didn’t see this much conversation coming in advance, but it was really useful to help refine the product even further (plus hone the remaining marketing sequence steps.)

I upgraded our WordPress hosting big time.

High level architecture

WPengine looked at our load last year and talked to me about my business goals for this year. (Total kudos to their sales staff who accommodated my request to work only over emails, and not phone hookups – my calendar was a hot mess at the time.) Based on their recommendations, I stepped up to a highly redundant setup with multiple powerful database servers and multiple auto-scaling web servers spread across two Availability Zones.

It ain’t cheap – over $6k/mo for the Black Friday configuration.

Yes, I can hear you screaming, “Brent, you know databases, web apps, architecture, and WordPress! You work on this exact same stuff in the Microsoft stack all the time! Why don’t you build all that and host it yourself?!?!” And it’s true – I adore doing this kind of thing, but I simply don’t have production-quality MySQL skills, nor do I want to be on call when there’s a load balancer problem, or hassle with upgrading anything.

It’s just an opportunity cost thing – it comes down to what my time is worth. I only have so many hours in the day, so if there’s something I can offload to an outside firm who does an amazing job at that, then I need to do it. There are some things I can’t offload – like designing my new courses, helping guest instructors craft abstracts – so I need to keep my calendar focused.

Besides, if you look at it as a percentage cost of doing business, it’s not that bad – if I could sell $500K of training in one month, then the web hosting costs are ~1% of it. Gotta keep things in perspective.

Dang, that was a lot of work.

I split the launch calendar in half between live instructor-led classes and self-paced recorded video classes because historically, the live instructor-led classes have been the minority of our Black Friday sales. I figured I’d take the lessons I learned from that first launch sequence, and use those to adapt the launch sequence for the video sales.

Off to a good start

The work totally paid off: in the first two days of the live class launch, we’d already cleared $200K, higher than we’d ever sold in November before – and we haven’t even launched the new/improved video recordings.

I might just make that Epic Life Quest task! But first – vacation and recharging in Mexico.

Read the Comments