Please don’t create a painful slide deck

OK, I know that a lot of you know where I was this week… yes, the MVP Summit. I absolutely love getting together with so many friends that I don't regularly see… This is by far, my favorite part about this annual event. Yes, I know I get access to cool information about upcoming technologies but after 20 years of this (remember, I started when I was 2 :)), I've also learned that a lot changes and so I no longer spend a ton of time learning all about early betas. Having said that, I am pretty excited about SQL Server Denali. I've already started to dive into Denali and I'm even more interested in upcoming features. But, things can still change and so I'm not betting the farm on what I see.

Having said that, one thing did surprise me this week. A few of the sessions had slide decks where a horrible "event" template was applied. I don't directly blame a lot of these presenters because they're just not regular speakers at events. Many of these folks are developers and program managers on the team and so they haven't all been burned by "slide management" teams (like I have) and so many didn't even think to review their reviewed/tweaked decks. As a result, a few slides ended up with some bad color choices. From what I was told, somewhere a template was applied and somewhere whites turned into blacks (or similar dark colors) and the next thing we know, there are some VERY hard to read slides. And, because the content is the most important to me, well, I'm still happy.

However, I decided to put together a short (and fun) slide deck with a few tips and tricks that I've learned over the years. I even accepted a few tweets about other snafus during presenting (again, mostly related to slide deck no-nos) and added a few of them here. Feel free to comment about other things you've seen, learned and now do differently/better! I'd love to hear more!!!

So, without further ado, here's the deck titled: How to make the audience turn on you… FAST!
(with a subtitle of: kind of like the cougar in Ricky Bobby’s car… but worse!)

In addition to all of the tips/tricks for making presentations better (or worse :)), here are some additional and VERY helpful links to help you create a better presentation AND become a better presenter!

 But wait, there's more!

Am I missing any resources that you think are/were helpful? Shoot me an email with the links!

Good luck and have fun!

What a week for our first Immersion Event on Internals and Performance

This post is from OUR perspective. The next one I'm going to do is from our attendee feedback! 

Last week was our first week delivering a new style of Immersion Event. And, now that the class has finished, we're really happy with our decisions on content and naming. The name was new because we had originally called these Master Immersion Events and the class was somewhat new because we replaced our ONE 5-day SQL Immersion Event (Internals/Design/Performance/Maintenance) with FOUR new 4-5 day classes (19 days total). 

Why were they "master" events and why did we remove that part of the title? First, let me begin with with we did add it! We added "master" because these new courses cover the wide range of topics as required by the exam and practical for those working toward their Microsoft Certified Masters – SQL Server certification. However, soon after, we ended up dropping the "master" part because it lead to confusion (some folks thought that the class was meant ONLY for those preparing for the exams). And, we changed them from SQL Immersion Events because we significantly extended the content to cover a wider spectrum of topics but also rearranged them to create concise, individual weeks of training. So, while they're still our fun, deep, focused Immersion Events, we have a lot more depth and content (19 days just in this area) covered for those who really want to design, tune and manage SQL Server systems effectively. Paul wrote an excellent post about it here: Leaving the Land of Confusion…

For those who attended, the feedback was fantastic and I have a post coming about that. But for this post, I just wanted to give you some insight into how the class was run and what it's like to attend an "Immersion Event" with us! 

Why do we deliver these at hotels?

We set up to deliver our event at the Marriott Suites Market Center in Dallas, TX and everyone that was not local stayed at the hotel. While being local is definitely nice for folks that don't have to travel, staying at the hotel with attendees is really the icing on the cake for these events. We've chosen Hiltons/Marriotts (in general) because they're comfortable and usually have good food and a nice lounge. And, don't think that I'm talking about drinking heavily every night. No, that's not really conducive to absorbing all of the content that we're going through. In fact, I didn't even have my first drink until Friday (but, I'm also a big wimp and I can't be impaired in any way if I'm going to lecture for 10 hours!!).

What the hotel/lounge/atmosphere allowed us to do is really focus on learning. We didn't have leave to forage for food. We didn't have to think about parking or traffic or having to arrange with a facility that we wanted to run over into the evenings. We were able to retreat to a warm and cozy lounge with a fireplace and relax together, have a drink and just kickback before heading off to bed at a reasonable hour. The days were intense and these events really take a lot out of you… Many commented on how relaxed they were and how comfortable the hotel was for them. Specifically, let me give you a picture of a typical day.

A Day in the Life of an Immersion Event Attendee

  • 7:45 am – Breakfast (thanks to SQLSentry's sponsorship we added a Full American breakfast – yum!)
    • In Dallas we had a Full American breakfast with plenty of bacon. And, eggs, pastries, fruits, cereals… high carb or low carb, vegetarian or not – you were covered.
  • 8:30 am – Dive right in
    • Content: We don't dance around, we don't waste time. We were ALL about the content and as much of it as we could fit in 5 days…
    • Breaks: We'd take 1-2 breaks in the morning for a total of about 20-30 mins of break time. But, even these we often filled with chats around the coffee/tea or chats with one of us around the whiteboard.
    • Whiteboard: Speaking of the whiteboard… we do A LOT of whiteboarding! So much so that we have our OWN whiteboard shipped to the event (the flash created a bit of glare in the pic but we fixed that with lighting). And, for this one we had two (we had a second smaller whiteboard in the back where we could write notes to the attendees however, this one turned out to have the MANY twitter aliases of attendees).
  • 12:30 pm – Lunch (again, sponsored by SQLSentry which was fantastic, we had plenty of food and plenty of choices)
    • Lunch was served at 12:30 pm and what was great here is that no one had to leave the hotel to go forage for food somewhere. We could really take a break and relax. Again, people could network and chat over lunch as well. This really adds to the Immersion experience.
  • 1:30 pm – Dive back in
    • The afternoon was much like the morning but we know it's always harder to focus while digesting… We took more breaks to get people moving/stretching but often shorter breaks just to break up the time sitting. We also had dessert served as part of an afternoon break along with a coffee refresh and a host of low-carb snacks as well.
  • ~5:30 pm – Wrap-up
    • Officially class would end around 5:30 but most days we'd go a bit longer with questions… 
  • 6:30 pm – There was always something going on in the evenings… 
    • Monday night: We all gathered in the bar and did our "meet'n'greet." We bought the first round, chatted with everyone and ended up staying until around 8:30 or so. It was a really nice way to get the week rolling and make sure that no one was nervous to ask questions. However, I don't think anyone was shy even by Monday lunch!
    • Tuesday night: SQL Sentry delivered a session on how to use their FREE Plan Explorer tool. Greg Gonzalez (t|b), President/CEO of SQLSentry flew in for the evening presentation. After the presentation, we all retired to the lounge and spent a bit more time talking about the tools, SQL Server and how fit Greg is! (CrossFit is definitely a powerful workout!) 
    • Wednesday night: Immersion Event attendee and Director of Engineering Services for SQL Sentry, Steven Wright (t) delivered a session on how to use their Performance Advisor tool and the new features of v6
    • Thursday night: some attendees offered to give micro sessions on some of their favorite topics and we thought that was a great idea! We ordered a bunch of appetizers, opened a tab at the bar, and away we went! For those that asked, we also provided speaker feedback to help folks improve their speaking skills. Trevor Barkhouse (t|b), Martin Catherall (t|b), Eric Humphrey (t|b), Brian D. Knight (t) and Kendra Little (t|b) all presented 20 min sessions and informed/entertained us all! It was the PERFECT way to host our last evening of the class… And, we think this might become a staple at future Immersion Events!
    • Friday night: Even on Friday… we had to pack a bunch of stuff but many stayed and chatted and then we all headed over to the lounge for dinner and drinks. I finally relaxed and had a nice big glass of wine! What a great way to end the week!!

The Attendees

First off, we had a fantastic group with 29 attendees from as far away as New Zealand. Four attendees were winners from our contest (Martin Catherall (t|b), Eric Humphrey (t|b), Kendra Little (t|b) and Sankar Reddy (t|b)) and most were not local. In fact, one attendee used to work with Kevin Kline (t|b) in Hermitage, TN when I first met them (and a few others) back in the mid-90s. It was a bit of a blast from the past!!

And, many of the attendees were on twitter and have blogs too. All of these things continued to add to the content learned during the week and the connections made. Most folks are now following each other and keeping up with what they're learning and uncovering with SQL Server. And, we're going to see a few of them in Dallas in March for our second Immersion Event on Performance Tunng. In fact, 8 attendees for the class coming up in March are folks that have attended the week 1 (Internals and Performance) Immersion Event either this year or last and a couple are coworkers of those who have attended. So, it will be great to meet up with them again and see what they're up to!

The End Result

We love the new format and we love the feedback we've received so far. We had a great time sharing our experiences and delivering our new style Immersion Event and now we're going to put a few more on the schedule. If you're interested in immersing yourself in SQL Server – check out our Immersion Events.

And, consider becoming a SQLskills Insider as well. For our London class in June, we've already offered a discounted rate and an early early-bird registration site. And, the hotel has a wonderful pub, internet access, and a full English breakfast (Paul's *very* happy about that). We're really looking forward to heading over! And, we're planning to add another US event (Immersion Event on Internals and Performance) to the schedule for early to mid-May.

If you want to get the scoop early – become a SQLskills Insider now!

Thanks for reading!

OLD: sp_helpindex rewrites

I realize that I’ve created quite a few posts (and rewrites) around sp_helpindex and recently I’ve been recommending that most folks use my latest version (jokingly, this is sp_helpindex9) but it’s not so obvious where to get it and/or what to do to install it. To make it easier… I’m just going to do a post like this EVERY TIME I have a new version and so there won’t be anything else to review/read.


All versions use a base procedure that builds the columns needed to produce the detailed output. So, you need to setup TWO procedures.

Step 1: setup sp_SQLskills_ExposeColsInIndexLevels

Create this procedure first: sp_SQLskills_ExposeColsInIndexLevels.sql (6.73 kb).

This is what gives us the tree/leaf definitions. And, this works for both SQL Server 2005 and SQL Server 2008.

Step 2: setup the replacement procedure for sp_helpindex. This IS version specific:

On SQL Server 2005, use: sp_SQLskills_SQL2005_helpindex.sql (10.50 kb) to create sp_SQLskills_SQL2005_helpindex.

On SQL Server 2008, use: sp_SQLskills_SQL2008_helpindex (sp_helpindex9).sql (11.06 kb) to create sp_SQLskills_SQL2008_helpindex.

Step 3: Optionally, setup this procedure to be invoked through a keyboard shortcut using Tools, Options, Environment/Keyboard. I usually make it Ctrl+F1 and I described how to do this here.


Survey: which US city should our next class be in?

One of the things I always find difficult is choosing where to host the next SQLskills Immersion Event. The community is so spread out that it's really hard to please everyone by coming to everyone's home town! We have some ideas of where we'd like to go next but here's your chance to influence us.

We're looking at scheduling another Immersion Event on Internals and Performance in the US in May, but where?

If you're thinking of coming to the next class, where would you like it to be?

(We'll try hard to meet your demands – now we'll know where we're most wanted!) 


We <3 you too!

Just today, Jen McCown (blog|twitter) of the Midnight DBA team blogged about their recent poll – who in the SQL community "does it right" in terms of community involvement. What's great is that the results were just published and SQLskills has come in second to SQL Sentry for community involvement. This is great news and we're happy to see that you think so too! (especially on Valentine's Day Embarassed)

Read Paul's post about our free resources and our exclusive mailing list in this post: Community, community, community, community….

And, along the same lines – we're continuing our Community involvement (with SQL Sentry) by hosting some free evening presentations while we deliver our Master Immersion Events in Dallas. We have somewhat limited space so we've created free "tickets" that you can print for the event. If you're interested check out these events and details:

Tuesday evening (Feb 22 and Mar 15): Query Tuning with SQL Sentry Plan Explorer

Abstract: Learn how to use this revolutionary FREE tool from SQL Sentry to wrangle even the scariest query plans. This session will cover key differences between Plan Explorer and SSMS, what to look for in estimated and actual plans, and various features that will help you get the most out of the tool.

Register for this FREE event (in Dallas, TX) here:


Wednesday evening (Feb 23 and Mar 16): Optimizing Performance with SQL Sentry v6

Abstract: This brand new release from SQL Sentry introduces several unique and cutting edge features, including active query plan capture for heavy SQL, plan analysis using the integrated version of Plan Explorer, additional Plan Explorer features made possible by active capture, historical query plan analysis, VLF problem detection, and more.

Register for this FREE event (in Dallas, TX) here: 

And, we plan to deliver a session at the North Texas SQL Server User Group on March 17 (I wonder if we can get green beer in Texas?)

We hope to see you at one of our upcoming events and if none of these work for you, be sure to join our exclusive mailing list by clicking here.

Thanks and Happy Valentine's Day!

Using the VHD for our SQL Server 2008 HOLs

VHD stands for Virtual Hard Drive.

A VHD is created with/by programs such as Virtual PC, Virtual Server, Hyper-V, etc. and there's a standard format associated with them. If you’re interested in reading more about VHDs, check out:

To use a VHD you need to have a program installed to "host" it. Think of it as a "guest" machine within a "host" machine. When you "run" the program that hosts the virtual machine you will be starting the "guest" machine within it. This guest machine is effectively isolated – which is great for testing, security, and restricting/limiting certain resources. To be able to do this, the VHD holds a completely installed OS and all other necessary software. This is part of what can make the actual VHD files extremely large. If you're interested in learning more about creating VHDs, check out this TechNet article: Create and Use a Virtual Hard Disk on Windows 7.

NOTE: Alternatively, if you're running Windows 7, you can also ATTACH a VHD natively without any additional software (I love this). I'll plan on writing up another post on this shortly and I'll link back to this! It's a great way for just quickly grabbing the files without any hassle of launching the VPC (and waiting for it to boot) and then copying files out, etc.

Depending on your operating system, there are a variety of recommendations on what to software to use to "host" the virtual machine:

Using the VHD with Windows Virtual PC (on Windows 7)

The remainder of the instructions here are for using and working with this VHD in Windows Virtual PC (Windows 7). Once Windows Virtual PC has been installed, you can "create" a Virtual Machine with only a few easy steps.

Creating the Virtual Machine 

(1) Launch Windows Virtual PC from the Windows Virtual PC group. This will show any already configured "shell" (or configuration) files in your "C:\Users\username\Virtual Machines" directory. These can be named .VMC (for older implementations of Virtual PC) or .VMCX (with new versions). For you, this list might be empty.

(2) To add a new virtual machine, select Create Virtual Machine from the top menu (see above). Next, you need to enter the details for the name and the configuration file for the VPC. The name is just how you plan to later reference the VPC and it can be helpful when you make copies/different versions of a VPC. You can always change this later as well. The location for the "settings" is stored within a VMCX file. Personally, I like to store this in the same location as the VHD.


(3) For memory and networking, your setting can vary. For memory, you need at least 1GB with a preference for 1.5GB or even higher, if possible. As for networking, you might want to access links or webpages or other resources so you might find this beneficial. If you want to access hard drives on the host machine, you can do this later (and more easily, IMO) through the Integration Features.

(4) Finally, choose "Use an existing virtual hard disk" to USE your expanded VHD as the "virtual hard disk" for your newly created virtual machine.

Using UNDO disks can be helpful as it allows you to change your VM into a secondary location and later choose (possibly days later) whether or not you want to save or discard those changes. Take a few minutes to read the details provided in the link.

Change the settings of the Virtual Machine 

Now that your virtual machine is setup, you can easily change any of the settings defined when creating the VM. You can do this by right-clicking on the VM or by choosing the Settings option from the menu. 

Starting and logging into your Virtual Machine 

To start the Virtual Machine (the "guest" machine on your "host" machine) use OPEN (again, right-click or from the menu):

This may take a few seconds to start as it's performing a full boot of an operating system (in the case of our HOLs VPC it's Windows 2003 Server). Once loaded, you can login. However, this is IMMEDIATELY where things can get confusing, especially if you've never used a virtual environment like this because the keystrokes aren't as you might be expecting. AND, if you have used earlier versions of Virtual PC Microsoft changed a few of the replacement keystrokes (this drove me CRAZY when I first booted with it!). If this is your first time using a virtual environment that's "hosted" then let me explain why it's necessary first. This can seem confusing but, it really does make sense. Many keyboard keystrokes (like Ctrl+Alt+Del) are tied to the host machine and cannot be changed even when changing window focus because they are OS level keystrokes. Ctrl+Alt+Del is an interrupt combination that's been used over the years to interrupt applications causing problems (and get to task manager, or to reboot when necessary). This keystroke combination is essentially always tied to the HOST – not the GUEST. As a result, you can select from the top menu (there's a button for Ctrl+Alt+Del) OR you can review the keystrokes below and use them.

Keyboard Shortcut [Confusion (IMO)]

Function/Keystroke       Virtual PC 2007        Windows Virtual PC (Win 7)
Logon/Ctrl + Alt + Del          Right-Alt + Del             Ctrl + Alt + End
Full screen toggle              Right-Alt + <Enter>         For full screen: Windows+Up Arrow, To toggle back, use the menu

And, now for the password… you can find our SQL Server 2008 SP1 HOLs VPC password in your the lab manual as well as in the 1stReadMe.txt file in the root of your DVD. For someone out there though, you might have lost the DVD, deleted the lab manuals and well… just WANT TO KNOW the password. It's expecting a US Keyboard and the password is Pass@word1. If your HOST machine is not using a US Keyboard, remember that your GUEST is. You will need to remember this as you type your password (especially the @ sign). For example, if you're on a UK Keyboard then "shift+2" is actually " (double-quotes). As a result, you still need to type shift+2 when typing in the password (as if you are on a US keyboard). Once you get into the VPC you can change your keyboard setting and save it. In fact, feel free to change the administrator password, if you'd like!

At this point, you're in. The HOLs VPC has 20 formal labs and dozens of samples/demo scripts for learning the many features of SQL Server 2008. Time to start having fun! Check out the LabManuals subdirectory and go from there.

Have fun!



Exciting news about our upcoming Master Immersion Events in Dallas, TX

We’re getting very close to our start date for our first "Master Immersion Event" and in planning, organizing and handling all of the event details – wow, there's a lot of work involved! However, we've had so much fun at these events that it ends up making it all worth it when they come together so well.

For our first class – which is less than two weeks from today – we have some exciting news!

Our news is that we’re pleased to announce that SQL Sentry is going to be our exclusive sponsor for our first two Master Immersion Events in Dallas!

Several of our staff have attended similar Immersion events and they are, without a doubt, the best SQL Server training you can receive.
Gregory H. Gonzalez
President and CEO, SQL Sentry, Inc.

We are thrilled to have the support of SQL Sentry on these upcoming Master Immersion Training events! SQL Sentry has been pushing the envelope on the SQL Server tools markets for several years now and we are pleased to have them sponsor our efforts to extend MCM level education out to the SQL Server community. We are huge fans of their Plan Explorer product, using and recommending it often. We especially admire their devotion to busy DBAs everywhere by making this product free to the SQL Server community.

What SQL Sentry's involvement allows us to do?

We've added a full American breakfast to the food provided for the week and we've upgraded our lunches – (with all of the food sponsored by SQL Sentry). This is really good because our discounted hotel rate doesn't include breakfast and so this will be a great way to allow folks to get the right start to their day! And, covering lunch as well means that attendees don't need to rush around with only a 1 hour break, find food and return. Instead, attendees can relax and really take a break. They can have a leisurely lunch right at the event… and with coffee/tea provided throughout the day, and with low-carb (and high carb ;-) snacks served mid-afternoon, attendees won't go hungry and won't run out of energy! And, their budget is hit less with breakfast/lunch covered by the event!

We've also added a Monday evening "meet and greet" as well as two evening presentations (Tue/Wed) to give attendees even more information to use in their every day work.

Tuesday evening: Query Tuning with SQL Sentry Plan Explorer, presented by Greg Gonzalez, President and CEO, SQL Sentry

Abstract: Learn how to use this revolutionary FREE tool from SQL Sentry to wrangle even the scariest query plans. This session will cover key differences between Plan Explorer and SSMS, what to look for in estimated and actual plans, and various features that will help you get the most out of the tool.

Wednesday evening: Optimizing Performance with SQL Sentry v6, presented by Steve Wright, Director, Engineering Services, SQL Sentry

Abstract: This brand new release from SQL Sentry introduces several unique and cutting edge features, including active query plan capture for heavy SQL, plan analysis using the integrated version of Plan Explorer, additional Plan Explorer features made possible by active capture, historical query plan analysis, VLF problem detection, and more.

If you’re not already familiar with SQL Sentry’s FREE Plan Explorer, check out Paul’s latest SQL Server Magazine Q&A post “Judging the effect of query plan changes while tuning.”

It's an exciting time in general. For us, it's a new opportunity to show people additional products (including cool and powerful FREE ones!) that exist and can help them with their SQL lives. In fact, I remember the first time I saw a SQL Sentry product – it was in a small conference room at a hotel at an event where I was speaking (I'm pretty sure it was Connections about 6+ years ago). I didn't have a specific use (at the time) for what they showed but I remember thinking – if I had that need, that would be IT! Then, some time passed, SQL Sentry grew and grew and then we started running in it at customer sites. Finally, we met Greg (@SQLsensei) in person at an Immersion Event when he and one of their engineers (Brooke) attended.

We all got to know each other better (and put faces to the twitter accounts :)). Then, it seemed a strange coincidence, we started running into more and more customers that had their products installed… and, we started using them more and recommending them more and more… and then they released Plan Explorer. What a COOL and FREE tool. This is absolutely a huge win for the community and I'm pleased to be a part of spreading the word!

So, after really getting to know them, their products and their team – we’re excited to announce that they’re sponsoring our first two Master Immersion Events in Dallas.

We hope to see you at an event coming up soon!

Compete for a free seat -> the winner has been chosen!

Wow. Choosing a winner was REALLY hard. We really struggled. We read all posts separately – chose our favorites and then came back together (re-reading many) and choosing our top 6. You can read all about it in Paul's post here:

Thanks to everyone for having submitted – we're really looking forward to a GREAT class in Dallas!


Master Immersion Event Content – Blog and WIN!

Paul has just blogged about this contest here:

So… may the best man (or woman!) win!

Good luck,

Do I need to be a master for “master immersion events”?

I've been getting this question a lot lately. I've been asked this mainly because numerous folks have told me that they don't think they're ready for this level of training. Many have even said that they don't think they're ready for the "master immersion events" because they think they're too advanced. This is the part that's funny… masters know the same things as everyone else – the difference is that it's second nature to them. They've had more experience with the content. They know best practices inside out. They know the many things on which "it depends" depend :-) They can debate 5 different approaches to solving the problem and based on the design criteria pick the one that meets the demands the best.

Masters are people like you… people that started out like you and had exactly the same experience that you did when you started working with SQL Server.

The difference is that they attended conferences, they took classes, they read blog posts, they got involved in the community and they studied and they worked and they kept studying. They got involved. They immersed themselves in the world of SQL Server and things have become clear.

If you're thinking that our classes are too advanced then you really have the wrong idea about SQL Server. Our classes are definitely fast-paced. Our classes are definitely deep! However, you don't have to be planning to take the certification exams the week after the class ends in order to attend the class (or in order to succeed). In fact, I wouldn't recommend it anyway. To truly "master" anything takes time. People with different levels of experience will get different things out of our classes but everyone walks away with practical and applicable techniques and best practices that (depending on the class) improve performance, minimize downtime, minimize data loss, improve manageability and solve design challenges.

These classes are for everyone and the sooner you learn these best practices and continue to work with these best practices the sooner you'll be on your way to being a master!

Master your SQLskills; immerse yourself in SQL Server.

And, I wish you all the best if your ultimate goal is to take the exam and practical for Microsoft Certified Master – SQL Server. Read Paul's post (Big changes to the MCM program and how SQLskills can help you) for more information on our classes and MCM prep work.

Finally, if you have any questions about our training and/or if you're ready – just drop me an email: KimberlyATSQLskillsDOTcom.