python script to parse/visualize SQLite EXPLAIN output
Failed to load latest commit information.
LICENSE License was ambiguous before; Apache 2 licensing Jan 23, 2015 Make the readme link linky? Feb 21, 2011 opcode updates, normalized dot/png output Jan 23, 2015

What is it?

It takes SQLite explanations and visualizes them. If you have performance data in the form of I/O counts and opcode execution counts, it can also show those.

See this blog post.

What ingredients are required?

you need pygraphviz... and graphviz!

How do I make it go?

It now parses the command line and has stopped being dump. Basically you just point it at a ".json" file of the right type or a ".txt" file that is the output of performing a "EXPLAIN SELECT" using the sqlite3 binary built with "--enable-debug" and it does its thing. If you are not fancy enough to build sqlite with debug, the code still has some leftover logic that is capable of parsing a schema dump, but you will need to turn that back on yourself or ask nicely.

Invoke the script with "--help" to get more details.

Commands you might run to get that nougaty information include:

sqlite3-cvs global-messages-db.sqlite 'explain SELECT * FROM messages INNER JOIN messagesText ON = messagesText.rowid WHERE id IN (SELECT docid FROM messagesText WHERE subject MATCH "sutherland") AND deleted = 0 AND folderID IS NOT NULL AND messageKey IS NOT NULL ORDER BY date DESC LIMIT 100;' > /tmp/explained.txt

$ sqlite3-cvs global-messages-db.sqlite '.schema messages%' > /tmp/schemainfo.txt