我使用 Ref Cursor 作为 PLSQL 过程的输出参数。我需要在日志表中维护 proc 的确切开始和结束时间。
下面的虚拟代码:
Procedure(P1 IN NUMBER, P_REF_CUR OUT SYS_REFCURSOR)
IS
V_TS TIMESTAMP;
BEGIN
V_TS := SYSTIMESTAMP;
<Business logic here to generate SELECT query for Ref Cursor...>;
OPEN P_REF_CUR FOR <SELECT QUERY>;
INSERT INTO LOG_TABLE(ID, STR_TIME,END_TIME,..) VALUES
(1,V_TS,SYSTIMESTAMP,...);
END;
Ref Cursor 的选择查询有时需要 2-3 分钟才能执行,但在日志表中,我看到 STR_TIME 和 END_TIME 之间的差异只有几秒钟。
如何捕获过程所花费的总时间,包括查询执行时间?