Видях видео на някой, който използва новата помощна програма за командния ред, sqlcl, за да създаде лента, показваща напредъка на дългите операции в Oracle, както се вижда от V$SESSION_LONGOPS. Това видео ме вдъхнови да направя нещо подобно в SQL Developer.
По-долу е видеоклип на LongOpsWatcher в действие. Можете да видите оставащото време. Той изчислява процента на завършеност и включва лента. Избрах 5-секундна честота на опресняване.
Няма начин този отчет на SQL Developer да стартира автоматично отчета с ненулева честота на опресняване. Може би това ще дойде в бъдеща версия. Попълних заявка за подобрение и ми казаха, че други са предложили подобно предложение.
Ето SQL израза, използван в този отчет за SQL Developer:
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
Чувствайте се свободни да променяте, за да отговарят на вашите нужди.
Актуализация (15.12.2015 г.): Няколко дни след като публикувах този запис, бях препоръчан към подобен запис в блога от Uwe Kuchler. Тази публикация показва приятен наблюдател за дълги операции в SQL Dev с много възможности за разбивка на това какво прави продължителната сесия. Можете да видите записа в блога тук: http://oraculix.com/2015/12/14/reporting-long-running-operations-in-sql-developer/comment-page-1/#comment-1044