Re: subtransaction performance regression [kind of] due to snapshot caching
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andres Freund <andres@anarazel.de>
Cc: pgsql-hackers@postgresql.org
Date: 2021-04-06T04:47:13Z
Lists: pgsql-hackers
Andres Freund <andres@anarazel.de> writes: > The time in 14 is spent mostly below: > - 94.58% 0.01% postgres postgres [.] CreateFunction > - 94.57% CreateFunction > - 94.49% ProcedureCreate > - 90.95% record_object_address_dependencies > - 90.93% recordMultipleDependencies > - 89.65% isObjectPinned > - 89.12% systable_getnext > - 89.06% index_getnext_slot > - 56.13% index_fetch_heap > - 54.82% table_index_fetch_tuple > + 53.79% heapam_index_fetch_tuple > 0.07% heap_hot_search_buffer > 0.01% ReleaseAndReadBuffer > 0.01% LockBuffer > 0.08% heapam_index_fetch_tuple Not wanting to distract from your point about xactCompletionCount, but ... I wonder if we could get away with defining "isObjectPinned" as "is the OID <= 9999" (and, in consequence, dropping explicit pin entries from pg_depend). I had not previously seen a case where the cost of looking into pg_depend for this info was this much of the total query runtime. regards, tom lane
Commits
-
Increment xactCompletionCount during subtransaction abort.
- 90c885cdab8b 14.0 landed