A few weeks ago, Microsoft unveiled changes to the Microsoft Certified Master (MCM) of SQL Server program and showed off new free video training materials by SQLskills. I was curious to hear what the community would think about the new certification and our training materials.
Jason Strate (Blog – @StrateSQL) was the first to blog about trying to pass the MCM. There’s two parts to the MCM test now: a written multiple-choice exam, and after passing that, a six-hour hands-on lab exam. Jason didn’t pass the written exam the first time, and I applaud his honesty in blogging about that. It’s valuable for readers because you need to look at Jason’s credentials before making a run at the exam yourself. I usually recommend that senior DBAs just “Iron Man” the MCITP exams – take the exams without studying, then decide what areas of your knowledge need some improvement. I don’t recommend that at all for the MCM exam; spend some time – or a lot of time – going through the training material first.
The easiest way to get started is by watching the free training videos we recorded. I shamelessly copied (plagiarized?) Paul’s opening line of his videos: “(These videos) are not a replacement for the experience you’ll need, but they will show you the breadth of material you’ll need to know, and the depth to which you should know it.” Candidates can watch all 40 hours of training videos and still not be ready for the exam.
For example, my SQLOS video is 30 minutes long. I just can’t teach SQLOS concepts in 30 minutes – Gert Draper’s SQLOS talk consumed 4 hours when I was at the MCM – so I had to pick specific areas to cover. Rather than trying to do justice to CPU scheduling, memory management, and SQLOS’s services, I focused just on CPU scheduling. If you watch the video, you’ll see how deep you need to go on CPU scheduling, and you’ll see the other parts of SQLOS that you need to research on your own.
Recording those free training videos proved way more challenging than I’d expected. How much could I assume that the audience already knows? If I only had 30 minutes to cover a particular topic, I didn’t want to waste time on something most senior DBAs already knew. The MCITP DBA and MCITP Database Developer are prerequisites for the Microsoft Certified Master program, so I assumed anything MCITP-testable was too basic. However, the MCM requires knowledge of things outside of the MCITP, like virtualization. How much should I assume that the viewer already knows about virtualization? Should I define the terms “guest” and “host” or just skip right past that? I found myself thinking about my SQLcruise attendees. I thought, “Would Dave Levy know this? Would Crys Manson know it? Is this something Yanni Robel has talked about?”
After the first round of videos went live, I gritted my teeth and braced for the feedback.
The silence reminded me of what happened when we published our book. I had expected a furious roar of people pointing at various lines in the book, yelling, “THIS IS BOGUS! THIS IS ALL WRONG!” Only one or two bug reports trickled in over time, and in the quiet, I wasn’t sure if people were getting any value out of the book, or if maybe, just maybe, we got everything right. In the year since we published the book, I’ve gradually heard good things from readers, so I know it worked out well.
We slowly started getting feedback. Andre Kamman sent me an email questioning something I’d said in the Baselining & Benchmarking video. I’d said Page Life Expectancy can drop during backups. I’ve seen that happen time and again during my career, and it’s why I discard memory statistics from times when backups are running. Unfortunately for me, Andre is one smart fella (and a gentleman, one of the many great people I love seeing at SQLbits) and he also included a link to a Paul Randal blog post saying PLE isn’t affected by backups. Uh oh! So now I have to do some rigorous testing to prove that out – I’ve got a hunch that it’s caused by the third party backup software I use, which consumes memory during backups, and might be putting SQL Server under memory pressure. It shouldn’t, but…
From that point on, as I recorded MCM videos, I kept rerecording the same slides trying to make sure I didn’t misstate anything. My regular speaking style is very fast, loose, and animated. I jump into impromptu soliloquies on a topic, thinking of new ways to explain stale topics, and this carries a huge risk with recorded videos – especially those with a big audience. The PLE quote was a great example, because I spoke off the cuff trying to explain reasons why PLE usually drops.
Turns out that even just mentioning Page Life Expectancy and possible thresholds for it is fraught with peril. Someone posted a completely misleading blog entry about why PLE should be exactly 300 – which is wildly incorrect – and that led Paul to imply that there’s no such thing as a threshold for PLE. I agree that there’s no black-and-white good/bad number, but the lower PLE gets, the more turnover you’re experiencing in memory. That doesn’t necessarily mean your server needs more memory, and in fact, buying more memory may not be the best way to improve performance. The classic example is a query doing huge table scans because someone added an additional field to a commonly used report, and the query no longer uses just a covering index. Adding the new field to the index (or removing the field from the report, ha ha ho ho) might improve performance more than adding memory.
At the MCM level, there’s even religious wars about which terms to use. The term active/active clustering refers to a SQL Server cluster where multiple nodes are running active instances of SQL Server on each node – but so does the term multi-instance clustering. The term multi-instance is more technically correct, but it’s not a commonly used term – the market standardized on active/active clustering a long, long time ago. I used the more common wording in my clustering video, but I took pains to explain why that term (as well as the term shared-nothing clustering) is misleading. Geoff Hiten, a clustering MVP that I very highly respect, took me to task for using the misleading term. He’s totally right in that multi-instance is better, but that wasn’t an objective I wanted to pursue in the MCM videos.
You know the drill with SQL Server answers – it depends. As much as we try to clarify points in the videos, there’s always going to be contentious points that people will debate. To help facilitate that, Microsoft is putting together a forum where viewers can discuss questions and MCMs can offer guidance. In the meantime, feel free to email the presenter of each video directly with your questions. Please email us, rather than tweeting, because the 140-character Twitter limit doesn’t do justice to questions or answers. If you’d like to crowd-source your question before the forum goes up, feel free to post programming questions on StackOverflow and admin questions on ServerFault. That way, you can elaborate in detail on your question, and we can get lots of brains involved. You can then tweet a link to your question with the #SQLhelp hash tag to get the Twitterati’s attention.
Finally, I’d like to give you one more point of contact. Joe Sack (@JosephSack) leads the SQL MCM program. He’s put in endless hours to help craft the entire experience. He listens patiently to feedback, takes action, and believes in doing the right thing for everybody involved. He’s been the driving force between getting the tests right, getting the testing facilities to obey the rules, and what might even be my favorite thing of all, getting freely available MP4 versions of these videos available for download from Microsoft. No matter what kind of device you use, there’s free SQL Server training videos available for you right now.
Happy learning, and good luck with your exams! If you pass the written test (and even better, the lab), please let me know – I’d like to congratulate you personally and interview you. I know the rest of my readers would love to hear your MCM story.