Blog

Whew.

The first week was taught by Paul Randal (Blog@PaulRandal) and Kimberly Tripp (Blog@KimberlyLTripp), the husband-and-wife team of former Microsofties who founded SQLSkills.com.  To call them good trainers is an epic understatement.  They know how to deliver very, very technical material in ways that illustrate it well.  I had to stop Paul at one point and ask him how long it took to build a particular slide because the animations were so good at conveying a hard-to-describe process.

“Of course,” you say to yourself mid-week, “why doesn’t everyone know that you can just XOR all the IAM pages together to double-check the allocations on each PFS page?  It’s so obvious.”

But if you hopped into a time machine, went back one week before the class started, and said that same sentence to Last Week You, he wouldn’t even understand how that was related to SQL Server.

DBAs Are On a Need To Know Basis

As a DBA, I didn’t have the time to learn about stuff like IAM pages and PFS pages.  I was too busy keeping the trains running on time, tuning applications, building new servers, and avoiding disaster.

As an MCM candidate faced with an avalanche of really, really cool learning material, there’s a wonderful dilemma:

  • Should I focus on learning things to pass the exam (and maybe ignore obscure things that interest me)
  • Or should I give in to temptation and dive into the things I find mesmerizing, and skip things that don’t call to me (at the risk of not learning something required on the exam)
XKCD - Duty Calls

XKCD - Duty Calls

For example, during our first group study, we dove down a rathole and spent a lot of time discussing the intricacies of the ghost cleanup process.  I’m smiling as I type this because we had a really fun time debating and analyzing how a particular part worked.  When we asked Paul about it the next day, he explained it, but immediately pointed out that those fine-grained details wouldn’t be on the exam.  They weren’t even in the slide deck or notes, because we’d gone so far away from what’s useful for real-world architects and DBAs.  Nobody needs to know this stuff, but we’re hard-core geeks, and we find the inner workings cool.

Go far enough down the rathole, and you become really thankful for the MCM’s biggest perk: connections to brilliant people.  As much as I love the intertubes, there’s wrong information out there.  It’s hard to put a price on accurate information, especially when the design, performance, and security of your data is at stake.  Going through this class, suddenly I can appreciate how frustrating it can be for Kim and Paul to open up a web browser.  One could spend all day correcting bogus and misleading web pages, but that costs time, which is money, and there’s not much of an ROI on flame wars.  I can even make a case that if you’re a doctor, it makes sense to keep letting people shoot themselves in the foot.  There’s good money in removing bullets.

I don’t want to give you the impression that the class focuses on obscure internal processes, though.  Paul and Kim’s training upended the conventional 100-200-300-400 progression.  Instead of starting with 100-level material like “Meet Mr. Table and Mrs. Index,” it started with how the storage engine works.  On Monday, we covered things that most DBAs think they’ll never need to learn, let alone touch.  By the end of the week, as we gradually stepped away from the internals, we had a much better understanding of why some 100-200 level concepts worked the way they do.

When Do You Need to Know?

Good senior DBAs bust their humps the first year on the job.  They get the servers set up correctly, configure alerts & notifications to find out when things break, and harden security to make sure people can’t break things.  Once they’ve built a solid foundation, the rest of their time at the company is much easier, and they’ve got the free time to dig deeper.

That’s the perfect time to go for the MCM.

When you believe you’ve got things pretty stable in your environment, when you feel confident that your servers are under control, and you want to take your knowledge to the next level, the MCM is right for you.  I’ve already learned things in week 1 that I can quickly apply to my SQL Servers right now and improve performance, reliability, and scalability.  The only thing holding me back from sending out client & friend emails is that I don’t have the time to manage the responses yet.  For example, I connected to one friend’s server, ran a troubleshooting query, and found that we need to fix the log file setups.  I started banging out the email telling them what to do, but I realized it’ll take an hour, and if anything goes wrong in the process, I don’t have the time to help them troubleshoot.

Do I Actually Know?

We’re about to find out – my first exam starts at 8:00 AM Pacific.

My biggest concern (and I’ve heard the same thing from other candidates) is the test style.  What kinds of questions will be asked?  Will they be high-level design questions, mid-level implementation questions, or low-level syntax questions?  We keep rehashing the slide decks trying to cover these questions from all three angles, but it’s hard to come up with our own test questions when we don’t know that crucial element.  We’re going to breathe a sigh of relief once we see the first question just to know how to focus the rest of our studies on the next two exams.

Candidates who fail a test keep right on going, and retakes happen later.  Training starts again shortly after the two-hour exam completes, and the first teacher this week is the colorful Adam Machanic (Blog@AdamMachanic).  I’ve already warned the candidates that he’s younger than me, smarter than me, and knows more about alcohol than me, so he’s obviously doing something right.  Or many things.

As soon as I know my results, I’ll tweet ‘em, but it may take a while.  The results are graded by hand due to the question complexity and evolving nature of the tests.  This isn’t an MCP test that’s been beta’d with thousands of candidates, so they still monitor the results closely each time.

Wish me luck!

↑ Back to top
  1. Yep, Good luck * 1000times!

  2. Wow, good luck man. Good post today…can’t wait till I’m at the level to take the MCM.

  3. Nice post Brent – good luck with the exam this morning. There’s a question on whether full backups clear the log, just for you ;-)

  4. Good luck, Brent. Keep up the good posts about the training.

  5. Good luck Brent…! Thanks so much for all the information you send our way – I’m sure there’s a lot of us rooting for you. :)

  6. Break a leg!!!

  7. Good luck Brent!

    “Good senior DBAs bust their humps the first year on the job………..”

    What an excellent and accurate description of the way the DBA game plays out. I’m so in the thick of this very scenario right now…….again :-)

  8. “Good senior DBAs bust their humps the first year on the job………..” WELL SAID!! Go Brent, we are rooting for you and thank you for blogging so much of detail amidst all that you need to do.

  9. Question 1: Name all of the undocumented DBCC commands and options.

    Question 2: Quote chapter 23 of the SQL Server Internals book.

    Question 3: Calculate the exact run time for DBCC CheckDB on a 3.2 TB database with 7 partitioned tables.

    Well … okay, it wasn’t quite that bad. :)

  10. Hope you did well on the test.

    Was wondering with all the “internals” you are learning…I have been slowly reading your new book (partly due to slow reader, but also to comprehend it all). Do you think your book will get on the prep-list for MCM :)?

    • William – thanks, glad you’re having a good time with the book. I don’t think we’ll get onto the prep list though – they don’t put any books on the list at all. Their objective is to make all the prerequisite reading completely free. I applaud that, even if I’d rather sell more copies of our book. ;-)

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

css.php