Keeping up with the Joneses is hard but it’s not nearly as hard as it is keeping up with the information technology field these days. The only way anyone can keep up is to NEVER STOP LEARNING! That shouldn’t be so hard considering learning comes in all shapes and sizes such as:
- That blog post put out by your favorite technology professional.
- That quick tip you followed from a friend on twitter.
- That YouTube video showing you a new step-by-step.
- That time you accidentally deleted a database in production because you thought you clicked on the test environment. (I bet you never did that twice).
- When you dissected a procedure you found online and modified it to make it work for your situation.
- Even reading through Microsoft whitepapers and trying to stay awake.
Every experience is a learning experience on some level but not all experiences are created equal. Think of a flight simulator on your computer. You can take off, bank left, perform aerial maneuvers, land (sometimes crash-land) and more. No matter how much they pour on the graphics and physics, there is no comparison to actually being behind the yoke.
I’m a former United States Marine Corps Staff Sergeant with years of experience in Networking, Servers, End-User equipment, and more. I got my start working with databases as a developer making websites and local applications for a small consulting company. From day one, my training has come from Google searching followed up by hours and hours of trial and error. I limited myself to DML statements, object creation through SSMS, and security through SSMS. That’s it.
After I returned from Afghanistan, I had the opportunity to become a DBA. I interviewed (very poorly if you ask me). Luckily, he had a good feeling about the type of person I was so he hired me. Then it was off to the races. From day one, I had hundreds of servers and thousands of databases to manage and maintain. Overwhelming doesn’t begin to explain it. Still no formal training, I turned to what I had…the interwebs.
I follow a few blogs to include SQL Skills (and team) and Brent Ozar (and team) while also watching YouTube channels and how-to’s. I’ve taken courses on Lynda.com as well as in a distance education classroom environment. To me, while they all may have great information, these all feel like the simulator because they all lacked that certain something, interactivity. They go over the high-level areas such as what the queries are doing and how an index is like a phone book and should always be used with larger sources of data to speed up query execution. Yet, there was always the portions of the training where they would mention acronyms or procedures that I just wasn’t familiar with and couldn’t ask. They couldn’t see the blank faces or confusion in the room and elaborate or clarify. I needed more.
It’s not their fault I haven’t received any formal education since I’m the equivalent as the common Accidental DBA. 3 years into being a DBA and I have a good grasp on how to peform my position both with SSMS and T-SQL. I’ve developed my own management website with data collection, implemented replication and High Availability, and managed security over a corporate environment. I used the tools provided by other professionals and they returned with columns and metrics that I’m not completely familiar with. I mean, how many latches and locks are there? What is eager spool in a execution plan? What? Huh? ¿Verdad? Luckily, my boss sent me to training.
I attended SQL Skills Immersion Training: Performance Tuning and Optimization (Part 1) in Washington which was instructed by Paul Randal and Kimberly Tripp. While I thought this would be better than the ‘simulator’ training I received before, I wasn’t prepared for the sheer breadth and depth of information they provided. They broke it down from the basics and built layer upon layer into the inner workings of SQL Server and how it all worked together to bring back a simple query. With every module they worked their way up. This wasn’t a simulator. This was real-world experience and industry knowledge being given to us by members who actually helped make SQL Server what it is today. And as they spoke and ideas or curiosities popped into our heads, we could simply ask them about it and they would confirm, deny, or ponder on it until they returned with an answer. When it comes to SQL Server, they don’t just work with it, they helped develop it! That alone keeps me in a little state of awe. Now, when I go back and look through all of the previous blog resources I have read before, terms and topics and reasons for doing certain things just make more sense.
Now, when I use my queries, they make a world more sense than they did before. Just yesterday, I was asked to look over a stored procedure because it was taking a long time to run. Of course I did. I had my change to put my newly learned skills to the test! Did I fumble…a little. Let’s be honest, you can’t go through a week-long course with decades of experience being given to you and be expected to remember every little detail. No, I fumbled but with the materials provided, I was able to recover (very quickly too). In less than twenty minutes, I had a taken a stored procedure that executed in 14 minutes and 17 seconds down to 3 seconds (and of course I cleared the cache before doing so). 3 SECONDS! “A world of difference” was the response from the developer.
So now I want to attend SQL Skills Immersion Training: Performance Tuning and Optimization (Part 2). It goes over quite a bit more which will just ensure I can be a better DBA for my end-users as well as for my IT department. I believe that I can gain more from this course because my environment is in place. The rate of which we added and remove servers is minimum. This means that I need better information on how to best support what we already have through analysis, enhancements, and monitoring. While I know what deadlocks are, I’m not very familiar on the best practices for monitoring, analyzing, and resolving the issues that cause it. Part 1 taught us about locks, but little-to-nothing about wait and latch statistics. I have a decent grasp on the basics of how SQL Server works to return a query, but how do I best monitor the server? What are the most important counters or DMVs to look at? These are important topics I need to learn so I can be a better administrator. Am I saying I can’t learn these topics online? No. Am I saying that I will receive better instruction through verbal, written, and hands-on experience from the industry professionals at SQL Skills who offer this course? Without a doubt, yes.
When working with cars, I’ve heard the saying “There’s no replacement for displacement” meaning you can’t achieve the same performance from an 4-cylinder as you can from an 8-cylinder when it comes to sheer horsepower no matter how much you modify and upgrade it. I feel the same way about training. There is no replacement for industry experience and these instructors / professionals have it.
SQL Skills asked what my favorite performance tuning challenge is. This is hard because I have two goals. The first goal is to make my servers run faster and be more reliable. My bigger goal is to make my end-users say “Wow!” I mean, when you have developers who come to you asking for tuning and respond with that, you can’t help but smile and feel a real sense of accomplishment. With this first tuning request since my training, the first two modifications dropped the query down to a minute on my machine. The third got it down to 3 seconds. I’m sure I can get it lower, but it’s not necessary at this point. Let’s be honest, I might do it anyway for fun. I’m also looking forward to attending the second course because I want to know exactly where I should be looking when everything is running and running relatively well. I want to be able to see certain things coming before I get that call on performance issues. I want to develop queries and procedures that I can use for better monitoring before sharing them with the world. I don’t want to just exist in the database community, I want to contribute. I didn’t know I did until I saw what I could achieve both personally and professionally. Thank you SQL Skills.
If you don’t do so already, please check out SQL Skills and their blogs. You won’t be disappointed.