One of the best things in life is a good challenge. Being challenged to accomplish a goal brings out the best in all of us. We have to practice, learn, train, think, and grow – in short, we have to become a better version of ourselves. The challenge of winning a championship propels athletes to new heights; the challenge of earning a degree pushes students to gain more knowledge; and the challenge of completing a video game drives players to play for hours on end.
Being a DBA is one of these good challenges. There are so many great things you can accomplish in SQL Server (and other RDBMS). You can pick one person’s data out of millions of records in miliseconds. You can create unique and elegant ways of finding exactly the permutations of data needed. You can make data both secure and available at the same time. Being a DBA is a fun challenge!
One other activity that I find to be a fun challenge is fishing. There are many similarities between fishing and working with databases. You have to know how to use your tools. For fishing that means your rod, reel, lures, net, and any other tools. You need to practice using each piece of equipment. You need to play with the drag to get it just right – too loose and the fish throws the lure, too tight and the fish snaps your line. You need to experiment moving the lure around in the water. How will it swim if you reel it in steadily? How does it move if you give it a short, sharp jerk? What does it do if you let it stop?
The same is true in SQL Server. Will your database be available while you rebuild indexes? How about when you’re updating statistics? Does that stored procedure really need with WITH RECOMPILE option, causing it to recompile every time it’s run? There are often many different ways you can do the same task – which one is going to work best for your situation? The best way to learn SQL Server is also the best way to learn to fish – just go out and do it!
Another important concept is to know your environment. In fishing there is an expression “match the hatch”. This means when you’re going to a lake, pick out a bait that resembles what’s already there. You need to know what’s in the lake before you can know what to fish with. Additionally, there are several other factors that are all important in determining how to fish – cloud cover, barometric pressure, water clarity, wind, moon phase, and probably 200 more environmental variables. You need to constantly study the way these factors interact with each other and influence the fish if you want to consistently put the big ones in the boat.
The same is true of SQL Server in a very significant way. You need to know your databases. Is CPU running high? Is 300 a good number for Page Life Expectancy? Is setting Cost Threshold of Parallelism at 5 appropriate? Why was this query running in less than a second yesterday, and now it’s taking over a minute? Answers to these questions can almost always be found eventually, but if you study your system and the way everything in it interacts, you’ll know what to check and how to calmly find the source of your problems – and the best solution to them.
The purpose of this blog will be to pass on my knowledge and findings in working with relational database management systems (primarily SQL Server with a bit of Oracle). I’m still very new to the world of databases, and I’m sure many of my posts will be considered quite basic. It is my hope however that some of you will be able to benefit from the perspective I offer.
The comparison between fishing and database administration that’s most fun to consider is meeting the challenge. The hours spent preparing and learning to fish makes the excitment of pulling that lunker out of the water that much greater. In the same way, puzzling over a problem with the database before finding and implementing a solution gives such a great feeling of satisfaction that you’ll almost want to get a picture of yourself with the solution before letting it go, and moving on to the next spot.
A bit about me:
I grew up in a suburb of Milwaukee in Southeastern Wisconsin. I come from a family with eight kids, so I’m used to the chaos that the IT world throws at us! I graduated from Franciscan University in Steubenville, OH in 2008 with a degree in math and economics. Since then I’ve worked in the Milwaukee area for a bank, a software company, and I’m currently working for an online retailer. I’ve been happily married since 2009, and my wife and I are the proud parents of three young children. We belong to Saint Frances Cabrini parish and try our best be good Catholics, growing closer to God as we live. My relationship with God and my family are the two most important parts of my life, but in my little leftover free time I enjoy fishing, microbrews, cheering on the 49ers and Bucks, and I’m trying to get into bow hunting.