December 4th, 2008 by depesz | Tags: , , , , | 8 comments »
Did it help? If yes - maybe you can help me?

Long time ago I wrote small program to filter EXPLAIN ANALYZE output, and add summary of time.

A bit later (I guess, I don't recall exact time line, it could have been earlier) Michael Glaesemann started – cool tool for checking what might be wrong with given plan.

I'm not really happy with the emphasis Michael put on bad rowcount estimates, so I decided to write my own tool. Enter

Basic idea is: paste your explain analyze plan, and see the output. You can click on column headers to let it know which parameter is the most important for you – exclusive node time, inclusive node time, or rowcount mis-estimate.

It is definitely not perfect. I know of at least 1 bug now, and will fix it in not-distant future.

But, as for now – you can test it, play it, or simply use it. If you'd like to change/fix something – sources are freely available. Just be warned – it's Perl ;-P

  1. 8 comments

  2. It looks very nice. What do the yellow and red colors represent?

  3. Dec 4, 2008

    for exclusive and inclusive times, it shows how many parcent of total query time is spent in given node (either exclusive time or inclusive).

    for rows – x the color depends on size of planner mistake.

    if planner misestimated number of rows 10 times – it will be yellow. 100 times – mix between yellow and red. 1000 times – color is red.

  4. Dec 5, 2008

    “He also introduces, a web-based EXPLAIN ANALYZE filter…”Log Buffer #126

  5. # Greg
    Jun 5, 2014

    What license is the code under?

  6. Jun 5, 2014

    BSD. Just added license file to github repo

  7. # Ed
    May 16, 2017

    Thanks for this good work. I got a query from 30 mins down to 10 secs because of your work. For me, the “Stats” tab is the most useful way to pin point problem areas in big queries.

  8. # Hendrik
    Aug 22, 2017

    Great tool!

    Question: do you plan to support the json/yaml output of autoexplain too?

  9. Aug 22, 2017


    did you try? If it didn’t work – send me the explain output that didn’t work, i’ll look into it.

Leave a comment