Por acaso, as duas chaves estrangeiras do meu colega não eram indexadas e o backlog era grande.Se você estiver removendo 100 registros, cada um com duas referências, o PostGresql executa 200 gatilhos, cada um com uma chamada de função associada a eles.Por esse motivo, as pessoas assumem automaticamente as mesmas chaves estrangeiras e as usam liberalmente.Essa pequena abordagem em lote estava funcionando, mas era muito lento para acompanhar, resultando em um backlog crescente.Alguns milhares de discos também não levaram muito mais tempo, e o backlog foi rapidamente limpo.
Fonte: https://ivdl.co.za/2024/05/29/achieving-a-100x-speedup-of-deletes-on-postgresql/