Ich habe hier eine gute Antwort gefunden:Fortschritt einer Update-Anweisung verfolgen
Der Trick besteht darin, zuerst eine Sequenz zu erstellen (benennen Sie sie, wie Sie möchten):
CREATE SEQUENCE query_progress START 1;
Hängen Sie dann an den WHERE-Teil Ihrer Abfrage an:
AND NEXTVAL('query_progress')!=0
Jetzt können Sie den Fortschritt abfragen:
SELECT NEXTVAL('query_progress');
Schließlich vergessen Sie nicht, die Sequenz loszuwerden:
DROP SEQUENCE query_progress;
Beachten Sie, dass dies Ihre Abfrage höchstwahrscheinlich noch langsamer laufen lässt und jedes Mal, wenn Sie den Fortschritt überprüfen, der Wert zusätzlich erhöht wird. Der obige Link schlug vor, eine temporäre Sequenz zu erstellen, aber PostgreSQL scheint sie nicht sitzungsübergreifend sichtbar zu machen.