Chapter 9. Query Performance Tuning
Sooner or later, we’ll all face a query that takes just a bit longer to execute than we have patience for. The best and easiest fix is to perfect the underlying SQL, followed by adding indexes and updating planner statistics. To guide you in these pursuits, PostgreSQL comes with a built-in explainer that informs you how the query planner is going to execute your SQL. Armed with your knack for writing flawless SQL, your instinct to sniff out useful indexes, and the insight of the explainer, you should have no trouble getting your queries to run as fast as your hardware budget will allow.
The easiest tool for targeting query performance problems is use of
commands. These have been around ever since the early years of PostgreSQL.
Since then it has matured into a full-blown tool capable of reporting
highly detailed information about the query execution. Along the way, it
added more output formats. Since version 9.0, you can even dump the output
to XML, JSON, or YAML.
Perhaps the most exciting enhancement for the casual user came
several years back when pgAdmin introduced graphical
With a hard and long stare, you can identify where the bottlenecks are in
your query, which tables are missing indexes, and whether the path of
execution took an unexpected turn.
To use the nongraphical version of
preface your SQL with the words
EXPLAIN by itself will ...