Angry Birds of Database Performance Tuning

thatjeffsmith Database Stuff 9 Comments

Tell Others About This Story:

Database developers and DBAs often play the role of gunslinger, or a hired gunman. Someone brought in to ‘kill’ the bad guy, in this case, an under-performing database. Our tools of the trade are not as dramatic as firearms, but we can do just as much damage.

Ever heard of Angry Birds? In this mobile game, users get various weapons (in the form of Angry Birds) to launch at the naughty piggies.

What are your favorite weapons?

Since @oatmeal gave free and open license to his artwork, I felt obligated as a blogger to borrow them! One of the most challenging things for me as a writer is finding relevant, compelling artwork or themes for my posts. So this blog kind of wrote itself!

By the way, we’ve updated our arsenal here at Oracle since I first wrote this post back in 2011. Things like In-Memory, dynamic execution plans, and of course all the goodies in our SQL Tuning pack. But for this post I was going for the more ground-level weapons…

Bird Database Tactic
Indexes Everyone LOVES to use indexes. Powerful, easy to deploy. Work on most levels. Take out all the piggies with one shot, and you get bonus points.
Hints Requires great precision. Some people hate them, others love them. Often seem to fly off with little or no effect.
Parallelism Instead of just 1 little annoying bird, how about 3? Perfect for certain levels, seemingly useless on others.
Common Sense There’s no magic with this bird. You need to solve this level by using your head. This is the entry level bird in the game, and it should be your first weapon of choice in the database too. Instead of using some performance hack or undocumented tweak, maybe you just just ask for less data?
Tell Others About This Story:

Comments 9

  1. Love this analogy! So educative and so funny

    Can I use it in some workshops with students? This may get 5 extra minutes of attention from their side.

    Keep them coming.


    1. thatjeffsmith Post
  2. You are right, it’s just that I’m so used to seeing them small on a handheld that when i saw it on your blog it looked different. That and the fact that I’m only in stage 2 I thought it was a bird I never used yet πŸ™‚

  3. You should have used the bird that turns into three as parallelism :). Also, the choice of the Bomb Bird for Indexes is definitely fitting. Improper use of indexes to tune just one query can actually ruin the performance of others. Or just like a bomb, you killed the target, but took out the whole area with it.

    1. JeffS Post
  4. You need a STATS bird. If anyone raises a performance issue EVER, someone will always pipe up with “Refresh the stats” or “Have you gathered stats”.

    Unfortunately, they are correct just often enough that the blind refreshing of stats is never quite discredited.

    1. JeffS Post
    1. JeffS Post

Leave a Reply

Your email address will not be published. Required fields are marked *