PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come tenere traccia dell'avanzamento della query in PostgreSQL?

Ho trovato una buona risposta qui:Tracciamento dello stato di avanzamento di una dichiarazione di aggiornamento

Il trucco è creare prima una sequenza (denominarla come preferisci):

CREATE SEQUENCE query_progress START 1;

Quindi aggiungi alla parte WHERE della tua query:

AND NEXTVAL('query_progress')!=0

Ora puoi interrogare lo stato di avanzamento:

SELECT NEXTVAL('query_progress');

Infine, non dimenticare di eliminare la sequenza:

DROP SEQUENCE query_progress;

Nota che molto probabilmente questo renderà la tua query ancora più lenta e ogni volta che controlli l'avanzamento aumenterà ulteriormente il valore. Il collegamento sopra ha suggerito di creare una sequenza temporanea ma PostgreSQL non sembra renderle visibili tra le sessioni.