在 oracle 中,可以通過以下方法查詢存儲過程執(zhí)行記錄時間:使用 dbms_profiler 包獲取執(zhí)行統(tǒng)計信息。使用 v$profiler 視圖獲取正在執(zhí)行的 sql 語句和 pl/sql 單元的統(tǒng)計信息。使用 oracle 監(jiān)視器查看會話事件歷史記錄中的相關(guān)事件。使用 audit 插件審核存儲過程執(zhí)行并獲取審核文件中的信息。
如何查詢 Oracle 中存儲過程執(zhí)行記錄時間
在 Oracle 中,您可以通過以下方法查詢存儲過程執(zhí)行記錄時間:
1. 使用 DBMS_PROFILER 包
DBMS_PROFILER 包提供了查看存儲過程執(zhí)行統(tǒng)計信息的功能,包括執(zhí)行時間。要使用此包:
<code class="sql">BEGIN -- 開始剖析 DBMS_PROFILER.START_PROFILING; -- 執(zhí)行您的存儲過程 -- ... -- 結(jié)束剖析并獲取結(jié)果 DBMS_PROFILER.END_PROFILING; END;</code>
登錄后復(fù)制
結(jié)果將存儲在 DBMS_PROFILER.RESULTS 表中,您可以查詢該表以獲取存儲過程的執(zhí)行時間:
<code class="sql">SELECT * FROM DBMS_PROFILER.RESULTS WHERE OBJECT_TYPE = 'PROCEDURE' AND OBJECT_NAME = '您的存儲過程名稱';</code>
登錄后復(fù)制
2. 使用 V$PROFILER 視圖
V$PROFILER 視圖提供有關(guān)當(dāng)前運(yùn)行或最近運(yùn)行的會話中正在執(zhí)行的 SQL 語句和 PL/SQL 單元的統(tǒng)計信息。要使用此視圖:
<code class="sql">SELECT * FROM V$PROFILER WHERE OBJECT_TYPE = 'PROCEDURE' AND OBJECT_NAME = '您的存儲過程名稱';</code>
登錄后復(fù)制
3. 使用 Oracle 監(jiān)視器
Oracle 監(jiān)視器是一個圖形用戶界面 (GUI),它允許您查看有關(guān)數(shù)據(jù)庫性能的各種統(tǒng)計信息,包括存儲過程執(zhí)行時間。要使用 Oracle 監(jiān)視器:
啟動 Oracle 監(jiān)視器并連接到您的數(shù)據(jù)庫。
展開“會話”面板并選擇執(zhí)行存儲過程的會話。
在“事件歷史記錄”選項(xiàng)卡中,查找與您的存儲過程執(zhí)行相關(guān)的事件。
4. 使用 AUDIT 插件
AUDIT 插件可讓您審核數(shù)據(jù)庫中的活動,包括存儲過程的執(zhí)行。要使用 AUDIT 插件:
<code class="sql">-- 啟用 AUDIT 插件 ALTER SYSTEM SET AUDIT_TRAIL='DB' SCOPE=SPFILE; -- 啟用存儲過程審核 AUDIT EXECUTE ON PROCEDURE BY PUBLIC; -- 執(zhí)行您的存儲過程 -- ... -- 禁用存儲過程審核 AUDIT EXECUTE ON PROCEDURE BY PUBLIC REVOKE; -- 禁用 AUDIT 插件 ALTER SYSTEM SET AUDIT_TRAIL='NONE' SCOPE=SPFILE;</code>
登錄后復(fù)制
您可以在審核文件中找到有關(guān)存儲過程執(zhí)行時間的信息。