Oracle измеряет время выполнения хранимой процедуры - PullRequest
0 голосов
/ 15 декабря 2018

Я хотел бы измерить время выполнения хранимой процедуры в Oracle.Я изучил технику записи записи во временной таблице журналов в начале и в конце, но не могу использовать эту технику.

Можете ли вы отослать меня к инструменту с открытым исходным кодом / бесплатным, с помощью которого я 'я могу это сделать?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 15 декабря 2018

Ответ зависит от используемой среды.

Если вы используете SQLPlus , вы можете включить таймер следующим образом: t

SQL> set timing on

Тогдапросто выполните вашу процедуру, например:

SQL> exec my_procedure;

Когда процедура будет завершена, будет отображена итоговая строка, например:

PL/SQL procedure successfully completed.

Elapsed: 00:00:03.05

Из PL / SQL , вы можете использовать dbms_utility.get_time:

DECLARE 
    start_time pls_integer;
BEGIN
    start_time := dbms_utility.get_time;
    exec my_procedure;
    dbms_output.put_line((dbms_utility.get_time - start_time)/100 || ' seconds');
END;
/

Если вывести что-то вроде:

3 seconds

PL/SQL procedure successfully completed.

См. это превосходное объяснение от Тома Кайта .

0 голосов
/ 17 декабря 2018

Если вы хотите получить подробную информацию, которая действительно может помочь вам в диагностике проблем, я настоятельно рекомендую dbms_profiler.

Он прост в использовании и предоставляет статистику для каждой строки в pl / sql, включая количество выполнений, всеговремя, мин и макс.

0 голосов
/ 15 декабря 2018

Выполнение времени начала / окончания хранимой процедуры можно записать с помощью DBMS_UTILITY.get_cpu_time или DBMS_UTILITY.get_time

Например,

CREATE OR REPLACE PROCEDURE test_proc IS
BEGIN
 DBMS_OUTPUT.put_line('start time '||DBMS_UTILITY.get_time);
 <your statement>

DBMS_OUTPUT.put_line('end time '||DBMS_UTILITY.get_time);

END;

Конечно, существуют и другие способы определения времени выполнения.используя Profiler

Взгляните также на это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...