It is a well-known saying that “curiosity killed the cat,” but is this really not as true as it might sound; right up to the end of our devoted cat’s long life, she constantly poked around into places we didn’t want her to, but always approached new things cautiously and generally knew when to run away to safety. For people, the saying is generally used to discourage the recipient’s desire to know more of something. For example, if you asked the tuxedo wearing driver of your vehicle “What would happen if I pressed this button?” as you sped down the highway, he probably wouldn’t tell you to push it to find out that it controls the ejector seat you are sitting in. Curiosity won’t kill you, but recklessly pushing that button most certainly would.
Any database professional needs curiosity. The world of SQL Server, for example, used to be a reasonably simple one, made up of “only” a relational engine. It wasn’t impossible to become an expert in the entire product, because the whole product was made up of parts that worked together very naturally. Today, SQL Server’s relational engine is just a tiny part of a galaxy of products that are packaged together, including Analysis Services, Reporting Services, and Integration Services, as well as complicated high-availability options such as mirroring and clustering. Even the relational engine comes bulging with non-relational sorts of features that are useful in their place; but for a relational focused programmer they feel out of place. For example, the XML and spatial (geometry and geography) data types are cool, but don’t work quite the same way as the basic relational tools.
Without curiosity, most people would simply avoid the features they don’t use, but if you are going to administer or code with a product it doesn’t hurt to learn more and more about the tools, because it isn’t always easy to predict when it will be helpful to be familiar with them. Curiosity helps you push the limits of your knowledge, but it has drawbacks, just as the cat chewing on a high voltage wire to see if it is filled with some form of edible creamy goodness will probably discover when she gets to the tangy copper flavored center. Clearly, curiosity must be leavened with reasoning and wisdom.
Let’s briefly look at the pros and cons of curiosity for the database professional:
Pro – Learning new techniques – Writing basic SQL is easy, in fact the language was envisioned as a tool for users of all levels, but as your skills advance, you can write in a single statement what might take ten thousand procedural lines of code, leaving the dirty details of implementation to the query optimizer and processor
Con – Overusing newly learned techniques – When you learn a new skill, you want to start using it, regardless of whether or not it is needed. For example, once you discover temp tables, derived tables and CTEs, you will see that they can help you produce amazing results, but overuse tends to produce less than desirable results. As an example, while you can delete data using a CTE based query, if you are not careful you can delete all of the data in the table when you didn’t expect to.
Pro – Discovering interesting data – Throughout your enterprise database, there is likely an amazing array of interesting data situations just waiting to be found. Better ways to serve customers, ways to save money, as well as ways to better relate and integrate data from multiple systems.
Con – Discovering interesting data – There are bells you cannot un-ring, and forgetting something you see that you shouldn’t is difficult. You might find something annoying, like the salary of the dunderhead employee whose job you are doing for him; or something more sinister that the owner of the company is doing that entices you to violate stock trading laws.
Pro – Proactively solving problems – As a database professional, you will find that while data should be your company’s most important asset, it is often treated as an afterthought. So your daily jobs to copy, backup, manage, and deal with data of all sorts will often fail. As you become skilled you will likely start to become addicted to looking for types of problems that might occur and make sure they never do.
Con – Loss of sleep/sanity when problems cannot be repeated – Try as you might, some errors are random. The SQL community can help out, but sometimes you will be the first person to encounter an error that eventually becomes very common (someone has to be the first to report the error on the Internet, after all.) It is easy to get wrapped up in your code and spend all of your waking hours tilting at SQL windmills.
You’re unlikely to become a complete expert on all of the parts in the SQL Server package, but a measure of curiosity will lead to sufficient understanding to know what parts to use when.
Did curiosity kill the cat? Not as a rule. After a long, rich, life spent in pursuit of intellectual stimulation through satisfying her inherent curiosity, our cat died of having enjoyed over twenty years of easy living. In professional programmers and DBA’s it is more likely that a lack of curiosity will kill your opportunities for advancement and intellectual growth, just don’t push the red button without knowing what it does, ok?