Tuesday, August 17, 2010

Why I Joined Battle Against Any Guess (BAAG)

From Pythian blog, I came to know about Battle Against Any Guess (BAAG).

I instantly wanted to join the BAAG. When you register for BAAG, they asked you a question:

Why I join the BAAG?

My reply was:

From experience I have come to know that methodical diagnosis is the key to the resolution of performance problem in databases. As we cannot prescribe medicine to humans merely upon hunch, we shouldn't apply solutions on database problems by guesswork.

When I started my career back in 2001, performance tuning was a voodoo. In voodoo (Kala Jadoo in Pakistan), all is mystery. You follow haphazard procedures, you perform lots of mysterious steps, you tinker with lots of elements and see which one might work and blah blah blah.

That was what Oracle Performance Tuning was all about. The voodoo master, the DBA, would check the ratios, based on hunches would create some indexes, drop some indexes, recreate some indexes, increase or decrease the sizes of caches and buffers, apply some unknown hidden parameters, add more log files, resize them, set parameters like freelists, pctused, pctfree, inittrans all at once and then ask the user whether the database was fast now?

If user complained that database was still slow, the DBA would put all the blame on the user's ignorance or to the network team or to the server's hardware. And if user would say that things were fast this time, DBA would just smile and wonder which component did the trick.