在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语句。