Some of you may remember that I won entry to the week's training with this blog post. In that post I jokingly commented that I needed to get away to avoid aftershocks from a recent earthquake - well, ironically, there was a massive one back home in Christchurch, New Zealand while I was in Dallas - it happened on the Monday night of the course (Dallas time) - which is around Tuesday midday New Zealand time. Well, after I found out that my family was ok and I'd spoke to them on the phone - which took most of Monday night - we decided that I would stay for the week - as returning home would have served no useful purpose.
The course was that packed with information that taking my mind off things was pretty easy as it turned out. Here's a whirlwind tour of my daily highlights.
The Monday started with Paul taking about SQL internals. Having started my IT career as a programmer I was really interested in hearing about how records are stored. Slot arrays, pointers, pages and allocation maps are a subject I found very interesting. Hearing about the ghosting processing from an expert was much better that reading about it. I'd read about this stuff quite alot previously but hearing from somebody who was involved with the programming was pretty cool. Filestream and data compression in depth was a big hit with me too.
Monday night was a "get to know everybody at the bar" type of night. Always a big draw card.
Tuesday was a big day about the transaction log, recovery and also locking and blocking. Paul covered crash recovery and compensation records in depth. Knowing the full details of how SQL SERVER rolls back transactions is really interesting.
Kimberley spoke about transaction madness on Wednesday and spent a while demonstrating that there is no such thing as a nested transaction - very interesting. We also spent a long time looking at snapshot isolation and versioning - a subject that I'd not spent too much time on previously but an area I think I could definatly find a use for.
Wednesday night saw Steve from SQL Sentry giving another fully featured presentation.
Thusrday was full of tips to take back to the developers, table design techniques, internals and data access as well as a load on indexing (no pun intended :) I think this may be Kimberley's favorite subject :) ). There was a great quote from Kimberley today - "The sooner you start coding, the longer it will take." - very true, the amount of technical debt that is taken on through far too hasty planning is phenominal - please avoid this trap. Make you primary key choice wisely. If you need more info then watch the MCM videos on the subject - I learned alot from these.
On Thursay night, Paul and Kimberley gave us all the opportunity to speak about an SQL server related topic of our own choice. About six of us took them up on this and we had a good size audience. I gave an ad-hoc presentaion about business continuity. Paul and Kimberley gave us all discrete feedback on how we preformed - pretty invaluable as they are both well polished presenters.
Friday seen a whole discussion about statistics / filtered indexes / covering your queries and cost based optimization. Paul then finsihed up with loads about index fragmenation. At one point I was unsure if we'd get though all the material - but we did, and we covered it all well - Kimberley even told us she had more stuff up her sleave - "Just in case her and Paul ran out of slides" - yeah right!
I'll try to get back to a few courses from these guys, they really are that good. In the meantime, I'm hoping they get over to my part of the world for a few classes - I'll certainly be enrolling if they do and it'll be great to catch up with Paul and Kimberley again - I had a great time in Dallas, despite the earthquake distractions.
What was the biggest thing I picked up during the week? Well, it depends. Really. You need to look at each situation on it's own merits. Even dynamic SQL has its uses, really, (no, really, I'm not joking) but watch it in those query plans :)