Jag såg en video av någon som använde det nya kommandoradsverktyget sqlcl för att skapa ett stapeldiagram som visar framstegen för långa operationer i Oracle, sett från V$SESSION_LONGOPS. Den videon inspirerade mig att göra något liknande i SQL Developer.
Nedan är en video av LongOpsWatcher i aktion. Du kan se den återstående tiden. Den beräknar slutförandeprocenten och inkluderar ett stapeldiagram. Jag valde en uppdateringsfrekvens på 5 sekunder.
Det finns inget sätt för den här SQL-utvecklarrapporten att automatiskt starta rapporten med en uppdateringsfrekvens som inte är noll. Kanske kommer det i en framtida version. Jag fyllde i en förbättringsbegäran och jag har fått höra att andra har erbjudit ett liknande förslag.
Här är SQL-satsen som används i denna SQL-utvecklarrapport:
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
Ändra gärna för att passa dina behov.
Uppdatering (12/15/2015): Några dagar efter att jag lade upp det här inlägget hänvisades jag till ett liknande blogginlägg av Uwe Kuchler. Det här inlägget visar en trevlig Long Ops-bevakare i SQL Dev med massor av detaljerad kapacitet för vad den långa löpsessionen gör. Du kan se blogginlägget här: http://oraculix.com/2015/12/14/reporting-long-running-operations-in-sql-developer/comment-page-1/#comment-1044