Tôi đã xem một video về một người nào đó đã sử dụng tiện ích dòng lệnh mới, sqlcl để tạo biểu đồ thanh hiển thị tiến trình của các hoạt động dài trong Oracle, như được thấy từ V $ SESSION_LONGOPS. Video đó đã truyền cảm hứng cho tôi làm điều gì đó tương tự trong SQL Developer.
Dưới đây là video LongOpsWatcher đang hoạt động. Bạn có thể xem thời gian còn lại. Nó tính toán tỷ lệ phần trăm hoàn thành và bao gồm một biểu đồ thanh. Tôi đã chọn tốc độ làm mới 5 giây.
Không có cách nào để báo cáo Nhà phát triển SQL này tự động khởi chạy báo cáo với tốc độ làm mới khác 0. Có lẽ điều đó sẽ đến trong một phiên bản trong tương lai. Tôi đã điền vào một yêu cầu nâng cao và tôi đã được thông báo rằng những người khác đã đưa ra một đề xuất tương tự.
Đây là câu lệnh SQL được sử dụng trong báo cáo Nhà phát triển SQL này:
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
Vui lòng sửa đổi cho phù hợp với nhu cầu của bạn.
Cập nhật (15/12/2015):Vài ngày sau khi tôi đăng mục này, tôi đã được giới thiệu đến một mục blog tương tự của Uwe Kuchler. Bài đăng này cho thấy một trình theo dõi Long Ops tốt đẹp trong SQL Dev với nhiều khả năng đi sâu vào những gì phiên chạy dài đang làm. Bạn có thể xem mục blog tại đây:http://oraculix.com/2015/12/14/reporting-long-running-operations-in-sql-developer/comment-page-1/#comment-1044