December 7, 2021 by Kenneth Fisher
Something I’ve been thinking about recently is that DBAs are best when they are invisible. Now, this is also true of sysadmins and a number of other groups, but I’m a DBA so I think from that point of view. This also isn’t true of every task that DBAs do, but it feels right to me.
With any luck DBAs are proactive right? We look for the slowest running queries and tune them before they become a problem. We create indexes we expect will be needed and then periodically review them to see what’s actually being used. We run DBCC CHECKDB on a regular basis so that if there is any corruption it can be dealt with before it becomes any worse than it is. And of course backups. Planning what’s needed for a recovery, scheduling them, testing them etc. It feels like planning for disasters is a large chunk of our job. Then we create alerts to let us know when there is a problem. Because if we can’t be proactive, we can respond quickly.
Being a DBA is frequently a 24×7 job. That call at 3am because the application can’t connect to the database? We’re there. The install on Sunday afternoon because we don’t want to interrupt the business. Yep, we can do that. Now don’t get me wrong. We deserve (and should demand) a work life balance, but generally, we are a pretty flexible group. Personally I don’t mind taking off a few hours early on Friday because I’ll be working on Sunday. Or coming in late on Tuesday because I was working in the middle of the night.
Then there are the inevitable outages during the day. The ones that interrupt the business schedule. We are there too, working with everyone else to make sure that everything from our end is looking good and that we can fix any problems as quickly as possible. In fact, some of the worst disasters I’ve seen have happened when the DBA team wasn’t involved, and they should have been.
Don’t get me wrong. DBAs make mistakes. DBAs get things wrong. We can break a system as well or even better than most. But here’s the thing. When you don’t hear “The database is down” or “The application is slow” frequently it’s because we’ve been working hard so you don’t hear anything. A lot of our most important tasks are centered around making sure that things stay quiet.
This came up because we were given the opportunity to “Present our accomplishments” to senior management and the best I could come up with was:
You know those times when nothing was broken? That was us. (Not just us, but us.)
Which of course brings up a problem. How do you explain to management, especially in a large company, what you’ve been doing? You’ve been working hard, things are going well, but when looked at it from a distance it just looks like all is going well. Management frequently likes metrics. “We’ve developed 30 new applications.” “We’ve moved 75% of our computing up into the cloud and it only costs us 320% more than before.” etc. Uptime is an option. Same with number of requests. But they just aren’t usually enough. Status quo just doesn’t seem to be as exciting as a new widget. I’ll be honest, I don’t have a good solution, I wish I did. But it’s something to think about anyway.