EXPLAIN (GENERIC_PLAN): New in PostgreSQL 16
by
Laurenz Albe |
04.2023 A while ago, I wrote about how difficult it is to get an execution plan for a parameterized query. […]
The PostgreSQL documentation has some information about row locks. But typically, you cannot see them in pg_locks, and not […]
Breaking your PostgreSQL database with bad CHECK constraints
by
Laurenz Albe |
03.2023I am on a spree! After writing about breaking your database and transaction ID wraparound, here I am writing about […]
Transaction ID wraparound: a walk on the wild side
by
Laurenz Albe |
01.2023 Most people are aware of transaction ID wraparound. The concept has been well explained in Hans' article, so I […]
A unique constraint where NULL conflicts with everything
by
Laurenz Albe |
01.2023 I have been faced with a request for an unusual unique constraint that puzzled me for a while. Since […]
Pagination and the problem of the total result count
by
Laurenz Albe |
01.2023 When processing a big result set in an interactive application, you want to paginate the result set, that is, […]
UNION ALL, data types and performance
by
Laurenz Albe |
12.2022 A while ago, I wrote about the performance impact of query parameter data types. Recently I encountered a similar […]
EXPLAIN that parameterized statement in PostgreSQL!
by
Laurenz Albe |
11.2022 For detailed query performance analysis, you need EXPLAIN (ANALYZE, BUFFERS) output for an SQL statement. With a parameterized statement, […]
Rewrite OR to UNION in PostgreSQL queries
by
Laurenz Albe |
11.2022 In my article that reviles OR, I showed how in certain cases, it is possible to rewrite OR in […]
Why are my PostgreSQL updates getting slower?
by
Laurenz Albe |
10.2022 Recently, a customer asked me why a bulk load into a PostgreSQL table kept slowing down as time went […]