plsqlでSQL実行時間の確認方法

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文には利用できません。

bannerAds