Tips for Senile DBAsPosted: October 5, 2007
I’m not sure anyone except me actually needs these tips, DBAs tend to have phenomenal memory, but I have to write these tips down before I forget them.
When I made my big career change and became a DBA, one of the things I was worried about is that I’ll never be a good DBA because I have rather weak memory. All the DBAs I knew had amazing memory for all kinds of exotic information and details – not just database related, they remembered URLs, IPs, phone numbers and the name of that guy who runs the development team of the product that is currently misbehaving. I can’t do all that, so I have to find ways to compensate.
- To Do lists. Write down all your tasks. I don’t need to elaborate here, do I?
- Write small notes to yourself. Especially if you are interrupted in the middle of a critical task. My coworkers keep asking me if I saw the movie “Memento”, but I don’t care. My memory is good enough to remember the time I was interrupted in the middle of an update, and when I returned to work I remembered I should run the update, but I didn’t remember that I did not write the “where” clause yet. Now I write down “where clause!” on a small note before I answer any question.
- Write a blog. You know how the DBA down the hall always says things like “Ah, yes. We saw this problem with the filer five years ago whenwe did the big Foo upgrade and ordered pepperoni pizza . Just do umount -lf on the partition and mount it again”? Well, they may have a great memory, but if you have a blog you can always write interesting problems and solutions in the blog, and look for them when something looks suspiciously familiar. Actually, the very act of writing the story will increase the probability that you will remember it. Besides, blogging is great fun and you get to meet interesting people.
- Regardless of the blog, keep a knowledge base. It doesn’t need to be fancy. Mine is a bunch of text files in a directory named KB. It contains all the important queries and commands that I use a lot but never remember. The query for getting interesting information for a session based on the process ID, my favorite export parameters, various queries on active session history, favorite ps options. They are all there, because I grew tired of forgetting them.
- Give everything meaningful names. I like reading code that was written by senile programmers, because it is always very readable. They know that unless everything is meticulously documented and very easy to understand – tomorrow morning they will not know what the function should be doing. When you can’t rely on your memory, you rely on your code – which is much better for everyone.
- Refer to the documentation. I rarely remember all the parameters that a functions need, all the options for a command or exactly what is the syntax for starting the archive log on a 9i database. Its a wonder I passed the OCA. This means that I’m constantly working with Oracle’s online books and references. It is obviously slower than remembering everything, and I often envy the coworker who can remember all the options for gather_schema_statistics, but when I read the documentations I often find better ways of doing the job than the one I should have memorized, and sometimes I run into other interesting bits of information.
- Remember that when all your coworkers will celebrate their 50th birthday and will complain about losing their memory, we will just keep doing things the way we are used to without noticing any difference.
I’m sure you all read Tom Kyte’s blog, but just in case you didn’t read todays post “My name is Tom and I’m a terrible programmer”, go and read it now. Not that I believe for a second that he is really a terrible programmer.