在PL/SQL中,可以使用DBMS_UTILITY包中的TIMER和FORMAT_CALL_STACK函數來測量SQL語句的執行時間。
下面是一個示例代碼:
DECLARE
l_start_time NUMBER;
l_end_time NUMBER;
l_total_time NUMBER;
l_execution_time VARCHAR2(100);
BEGIN
-- 記錄開始時間
l_start_time := DBMS_UTILITY.GET_TIME;
-- 執行你的SQL語句
-- ...
-- 記錄結束時間
l_end_time := DBMS_UTILITY.GET_TIME;
-- 計算總的執行時間
l_total_time := (l_end_time - l_start_time) / 100;
-- 格式化執行時間
l_execution_time := DBMS_UTILITY.FORMAT_CALL_STACK(l_total_time);
-- 打印執行時間
DBMS_OUTPUT.PUT_LINE('執行時間:' || l_execution_time);
END;
在上面的代碼中,使用GET_TIME函數獲取當前時間,然后在執行SQL語句前記錄開始時間,執行完SQL語句后記錄結束時間,然后計算總的執行時間,最后使用FORMAT_CALL_STACK函數格式化執行時間并打印出來。
請注意,這種方式只能用于在PL/SQL中執行的SQL語句,不能用于外部工具或應用程序中執行的SQL語句。