There's more…
Another ace in the hole is represented by temporary tables used for parts of the query. By default, a temporary table is dropped at the end of a Postgres session, but the behavior can be changed at the time of creation.
PostgreSQL itself can choose to materialize parts of the query during the query optimization phase, but sometimes, it fails to make the best choice for the query plan, either due to insufficient statistics, or because-as it can happen for large query plans, where genetic query optimization (GEQO) is used-it may have just overlooked some possible query plans.
If you think that materializing (separately preparing) some parts of the query is a good idea, you can do it using a temporary table, simply by running ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access