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