Tôi phải viết một thủ tục lưu thời gian thực hiện của bất kỳ câu lệnh sql nào trong một bảng.đo thời gian của một câu lệnh sql trong một thủ tục trong plsql
Thủ tục được gọi bởi exec measuresqltime('sql statement as string');
Ý tưởng của tôi là như thế này:
--declarations
timestart NUMBER;
BEGIN
dbms_output.enable;
timestart:=dbms_utility.get_time();
EXECUTE IMMEDIATE sql
COMMIT;
dbms_output.put_line(dbms_utility.get_time()-timestart);
-- save time
Nhưng nó không làm việc cho tôi một khoản SELECT *...
. (Tôi nghĩ sql cần một đơn đặt hàng INTO)
Có cách nào để thực hiện bất kỳ câu lệnh sql nào trong quy trình không?
hey, có vẻ tuyệt vời :) nhưng nó chỉ hoạt động fpr chọn báo cáo phải không? Có một tùy chọn o chạy xóa hoặc chèn-báo cáo? – sheepy
@sheepy: Bạn không thể tìm nạp con trỏ DML (INSERT/UPDATE ...) để dòng 12 sẽ tăng lỗi trong trường hợp đó. Nắm bắt ngoại lệ và thủ tục sẽ làm việc cho cả các truy vấn DML và SELECT. –