Re: Horribly slow pg_upgrade performance with many Large Objects

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Hannu Krosing <hannuk@google.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-09T17:53:48Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pg_upgrade: Use COPY for large object metadata.

  2. pg_dump: Fix object-type sort priority for large objects.

  3. pg_upgrade: Mention that we preserve database OIDs in a comment.

  4. pg_upgrade: Preserve database OIDs.

  5. Fix pg_upgrade for oid removal.

On Wed, Jul 09, 2025 at 04:52:16PM +0200, Hannu Krosing wrote:
> If you run it without the last WHERE it is reasonably fast. And it
> behaves the same as just inserting from the dump which also does not
> have any checks against duplicates.

With that change, the query is much faster, but my testing indicates that
it's still measurably slower than dumping and restoring the relevant
contents of pg_shdepend.

-- 
nathan