[Note from Pinal]: This is a 63rdth episode of Notes from the Field series. Storytelling is an art very few have mastered in their life. When I requested Stuart to share his ideas about his famous blog about MARS, I really had not expected the response which I have received in this episode of Notes from the field. It is very critical for any DBA to be proactive in their operation, however are we proactive enough? Well, you need to read this entire episode of notes from the field to grasp the concept.
In this episode of the Notes from the Field series database expert Stuart Ainsworth explains about MARS in this very captivating story.
Database administration can be a complex job, particularly in large scale environments; DBA’s are responsible for a variety of tasks, and there’s a wealth of knowledge on how to administer and support SQL Server. For this post, however, I wanted to focus not on a specific code-related or configuration tip, but rather on a broader perspective of work in general. As a manager and a consultant, most SQL Server shops have a common problem: we focus too much on reacting to problems and not enough on preventing them.
In the past, I’ve blogged about what I call the MARS paradigm: Maintenance, Architecture, Research and Support. Most system administration tasks can be broadly categorized into one of these four areas, and each of these four areas can be conceptually defined in terms of Actions (Proactive\Reactive) and Results (Delayed\Immediate):
Think about any given day, and how much time you spend working in each of the 4 areas; which ones are given priority? If you’re like most shops, you probably spend the most amount of time working support cases (“my query is slow”, or “can you show me where to find this information in the database?”) instead of focusing on maintenance or architecture. A healthy IT shop will find ways to balance the need for immediate reaction to the need for proactive long-term results; however, the question that needs to be answered is: why do we react, and how do we become more proactive?
Why Database Administration Is Usually Reactive:
In part, the reactive nature of most IT departments is a cultural thing. Fighting fires can be fun; people who solve problems are usually lauded as heroes, while people who prevent problems often go unnoticed. Think about it this way; if a database is corrupted and a restore is required, who gets the credit for saving the day? The DBA who did the restore or the DBA who set up the backup plan years ago (assuming that they’re not the same DBA)? Administrators that are quick to act are viewed as being responsive, even though they’re usually built on a foundation that was established invisibly some time ago.
Furthermore, most database administrators are thorough in their work; support issues are usually an opportunity for them to dig into a problem and find the best solution. Maintenance issues, on the other hand, are addressing problems that don’t yet exist, and therefore don’t yet need a solution. However, constantly providing support pulls resources away from building a better foundation. If a DBA is spending time constantly fighting fires, they’re not spending time on monitoring the environment to avoid future problems. So how do you move from a reactive environment to a proactive environment?
Moving From a Reactive Approach to a Proactive Approach:
First, track your work efforts for some period of time (30 days). Find a way to categorize your work into one of the four broad areas defined above:
- Maintenance: efforts needed to keep system performance and stability
- Architecture: efforts to add new features, functionality, or capability
- Research: efforts to learn “something new”
- Support: efforts to sustain the existing functionality or customer requests
Ideally, your work is being tracked in some form of service desk software, but if not, then I’d suggest you start with something simple (like a whiteboard with sticky notes).
Second, figure out a metric for work effort; it could be time spent on an issue, or the number of issues, or some other measure of complexity. The goal is to have a reasonable method of comparison between categories. Based on your collection efforts, you should be able to figure out where you’re spending most of your time; if more than 50% of your time is being spent in Support or Research, it’s time to consider becoming more proactive.
Becoming more proactive can be a never-ending journey, but I have a few suggestions on where to start:
- Prioritize accordingly. Not every support case deserves to be treated as your top priority; make sure that maintenance and architecture issues are included in your escalation plans.
- Set it, but don’t forget it. SQL Server offers a lot of tools for automating maintenance; make sure that you allocate time to review successful executions as well as failures. Understanding when a system is performing outside of spec is nearly as critical as being notified when it fails.
- Communicate with interested parties. Let your manager and your peers know about your maintenance an architecture efforts; the best metric would be a reduction in support calls and cases.
If you want to get started with SQL Server with the help of experts, read more over at Fix Your SQL Server.
Reference: Pinal Dave (https://blog.sqlauthority.com)