Waiting for 8.5 – hinting for number of distinct values
Robert Haas wrote, and Tom Lane committed (on 2nd of August) patch which adds interesting capability: Log Message: ----------- ADD ALTER TABLE ... ALTER COLUMN ... SET STATISTICS DISTINCT Robert Haas...
View ArticleWhy is my index not being used?
This question (and its variants) show quite often on #postgresql on IRC. People get sequential scans, and are worried that it's slow and bad. So, I hope that this blogpost will shed some light on the...
View ArticleWaiting for 9.2 – filtered info in explain analyze
On 22nd of September, Tom Lane committed patch: Make EXPLAIN ANALYZE report the numbers of rows rejected by filter steps. This provides information about the numbers of tuples that were visited but...
View ArticleWaiting for 9.2 – EXPLAIN TIMING
On 7th of February, Robert Haas committed patch: Sometimes it may be useful to get actual row counts out of EXPLAIN (ANALYZE) without paying the cost of timing every node entry/exit. With this patch,...
View ArticleExplaining the unexplainable – part 5
In previous posts in this series, I talked about how to read EXPLAIN output, and what each line (operation/node) means. Now, in the final post, I will try to explain how it happens that Pg chooses...
View ArticleWaiting for 9.4 – auto_explain: Add logging of trigger execution
On 4th of March, Alvaro Herrera committed patch: auto_explain: Add logging of trigger execution Author: Kyotaro HORIGUCHI Reviewed-by: Jaime Casanova The change is pretty simple, and for most people...
View ArticleWaiting for PostgreSQL 13 – Allow vacuum command to process indexes in parallel.
On 20th of January 2020, Amit Kapila committed patch: Allow vacuum command to process indexes in parallel. This feature allows the vacuum to leverage multiple CPUs in order to process indexes. This...
View ArticleWaiting for PostgreSQL 16 – Add grantable MAINTAIN privilege and pg_maintain...
On 14th of December 2022, Jeff Davis committed patch: Add grantable MAINTAIN privilege and pg_maintain role. Allows VACUUM, ANALYZE, REINDEX, REFRESH MATERIALIZED VIEW, CLUSTER, and LOCK TABLE....
View ArticleWaiting for PostgreSQL 17 – Invent SERIALIZE option for EXPLAIN.
On 3rd of April 2024, Tom Lane committed patch: Invent SERIALIZE option for EXPLAIN. EXPLAIN (ANALYZE, SERIALIZE) allows collection of statistics about the volume of data emitted by a query, as well...
View ArticleCase study: optimization of weirdly picked bad plan
We recently hit an interesting case where planner picked wrong plan. Kinda. And figured it could be used to show how to deal with such cases. So, we have some databases on PostgreSQL 14 (yes, I know,...
View ArticleWaiting for PostgreSQL 18 – Enable BUFFERS with EXPLAIN ANALYZE by default
On 11st of December 2024, David Rowley committed patch: Enable BUFFERS with EXPLAIN ANALYZE by default The topic of turning EXPLAIN's BUFFERS option on with the ANALYZE option has come up a few times...
View Article