Chapter 9. Query Performance Tuning
Sooner or later, we’ll all face a query that takes just a bit longer to execute than what we have patience for. The best and easiest fix to a sluggish query is to perfect the underlying SQL, followed by adding indexes, and updating planner statistics. To guide you in these pursuits, Postgres 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 what your hardware budget will allow.
EXPLAIN and EXPLAIN ANALYZE
The easiest tool for targeting query performance problems is using
the EXPLAIN
and EXPLAIN ANALYZE
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 to its
number of output formats. In PostgreSQL 9.0+, you can even dump the output
to XML or JSON. Perhaps the most exciting enhancement for the common user
came when pgAdmin introduced graphical EXPLAIN
several years
back. 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.
EXPLAIN
will give you just an idea of how the planner intends to execute the query without running ...
Get PostgreSQL: Up and Running now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.