Tôi là nhà phát triển trên ứng dụng web sử dụng cơ sở dữ liệu Oracle. Tuy nhiên, thường thì giao diện người dùng sẽ kích hoạt các hoạt động của cơ sở dữ liệu mất một thời gian để xử lý. Kết quả là, khách hàng muốn có một thanh tiến trình khi các tình huống này xảy ra.Xác định tiến trình của truy vấn (Oracle PL/SQL)
Gần đây tôi đã phát hiện ra rằng tôi có thể truy vấn V $ SESSION_LONGOPS từ kết nối thứ hai và điều này thật tuyệt, nhưng nó chỉ hoạt động trên các hoạt động mất hơn 6 giây. Điều này có nghĩa là tôi không thể cập nhật thanh tiến trình trong giao diện người dùng cho đến khi 6 giây trôi qua.
Tôi đã nghiên cứu về thời gian chờ đợi trong V $ SESSION nhưng theo như tôi thấy, điều đó không bao gồm việc chờ truy vấn.
Có cách nào để có được tiến trình truy vấn hiện đang chạy của một phiên không? Hay tôi chỉ nên ẩn thanh tiến trình cho đến khi 6 giây trôi qua?
Nếu bạn có hoạt động 100 x 1 giây. Không ai trong số họ sẽ xuất hiện trong SESSION_LONGOPS. Nếu bạn có 2 hoạt động liên tiếp mười giây, sau khi hoạt động đầu tiên của bạn đạt 100%, hoạt động thứ hai sẽ bắt đầu ở mức 0%. Đó sẽ là một thanh tiến trình bực bội.Tôi nghĩ đây là một trong những thứ cần vòng tròn xoay vòng, không phải thanh trạng thái, bởi vì bạn không biết phải mất bao lâu. –