The last day of training was well over a week ago, and yes, I am finally pulling together the blog post that covers Day 5. I also wanted to write some kind of overall summary and after some events in the past week or so, I decided to just incorporate that here.
We started out with Paul talking more about DMVs and one of the first items he covered was the log cache manager. Considering a post that was put up on the Oracle front last week by Jonathan Lewis, which led to this post by Gary Myers ( @syd_oracle ), it’s rather timely. I am working on a more in depth post about log cache so I’m skipping that for now. Paul also talked about versioning (poor TempDB, it will always be the least favorite child) and disfavoring pages in the buffer pool.
Then Jonathan (Kehayias, not Lewis 🙂 ) spent some time covering DMVs related to memory, which always confused the heck of me, so I was very interested in this section of the module. A good place to start when you’re looking at memory issues is sys.dm_os_ring_buffers, which is an undocumented DMV (hence the lack of a MSDN link). Jonathan provided us some great scripts that join sys.dm_os_ring_buffers against sys._dm_os_sys_info to show memory information and problems. One of the most useful is that which provides Out of Memory message (OOM), and I found a similar query in one of Jason Strate’s posts. I actually used Jonathan’s query last week to verify that a server wasn’t having memory issues.
As an aside, it was on Friday that I realized that the demo scripts that Jonathan, Paul and Kimberly provide are invaluable. Yes, you can get a lot of the scripts that they shared with us from their blogs or other sites. But several of the scripts were ones that they use for troubleshooting. And, their demos are incredibly well documented. Between the demos and the DVD with the VM on it, I have so many labs to walk through. It is awesome.
Finally, Kimberly spent the afternoon talking about Performance Data Collection, Policy Based Management and Central Management Server. Even though I’m all about capturing baselines, I haven’t played with Performance Data Collection, so this was a good overview. I’ve worked with Policy Based Management enough to know what it can do, but listening to Kimberly go through it sparked a few ideas for what we could do within my company to help customers check their servers more efficiently.
And then we were done. Sadly. I was definitely tired by the end of Friday, but I would do it all again without question.
In the past week and a half the one thing that really hit home is that there is no substitute for experience. While I have the MCM exam as a long term goal, attending the training alone is not enough. What is said at the beginning of the MCM videos could not be more true:
This training is not supposed to be a substitute for the broad experience and deep knowledge you will need for this certification, but it will give you an idea of the breadth of material you’re supposed to know and the depth to which you should know it.
I was troubleshooting a performance issue last week, one week out of SQLskills training, and I missed something. (Note to self, always use Jimmy May’s filestats script.) You cannot just attend training, or read posts and whitepapers, or even just watch the videos. It’s all about what you encounter the real world and what you learn from it. I wouldn’t recommend trying to create work for yourself by unplugging a server to corrupt a database, but when that difficult problem comes up, don’t panic. Take a few deep breaths, assess the situation, figure out a plan of attack, and go. The more you have read and tested on your own, the better off you will be. But there is no better way to learn than by doing.