Ho visto un video di qualcuno che ha utilizzato la nuova utilità della riga di comando, sqlcl per creare un grafico a barre che mostra l'avanzamento di lunghe operazioni in Oracle, come visto da V$SESSION_LONGOPS. Quel video mi ha ispirato a fare qualcosa di simile in SQL Developer.
Di seguito è riportato un video di LongOpsWatcher in azione. Puoi vedere il tempo rimanente. Calcola la percentuale di completamento e include un grafico a barre. Ho selezionato una frequenza di aggiornamento di 5 secondi.
Non è possibile che questo report SQL Developer avvii automaticamente il report con una frequenza di aggiornamento diversa da zero. Forse arriverà in una versione futura. Ho compilato una richiesta di miglioramento e mi è stato detto che altri hanno offerto un suggerimento simile.
Ecco l'istruzione SQL utilizzata in questo report per sviluppatori SQL:
select inst_id,sid,message,time_remaining,to_char((sofar/totalwork)*100,'990.00') as pct_complete, 'SQLDEV:GAUGE:0:100:0:100:'||nvl(trunc((sofar/totalwork)*100,2),0) as pct_bar from gv$session_longops where time_remaining>0
Sentiti libero di modificare in base alle tue esigenze.
Aggiornamento (15/12/2015): Pochi giorni dopo aver pubblicato questo post, Uwe Kuchler mi ha indirizzato a un post di blog simile. Questo post mostra un bel osservatore di operazioni lunghe in SQL Dev con molte funzionalità di drill-down su ciò che sta facendo la sessione di lunga durata. Puoi visualizzare il post del blog qui: http://oraculix.com/2015/12/14/reporting-long-running-operations-in-sql-developer/comment-page-1/#comment-1044