InsideDarkWeb.com

Как сделать, чтобы процедура всегда компилировась с заданным уровнем оптимизации?

Eсть PL/SQL-процедура с большой интенсивностью вычислений. Если она не скомпилирована с уровнем оптимизации 3 (по умолчанию установленно 2), то ее производительность заметно ниже.

Как сделать, чтобы процедура всегда компилировалась с уровнем оптимизации не ниже 3?


Свободный перевод вопроса How can I make sure a PL/SQL program is compiled with optimization turned on? от участника @Steven Feuerstein

One Answer

В этом случае надо воспользоваться условной компиляцией, а точнее, директивой ERROR.

Воспроизводимый пример:

create or replace procedure computation is
begin
    $IF $$plsql_optimize_level < 3 $THEN
        $ERROR 'This procedure must be compiled with plsql_optimize_level=3 or higher!' $END
    $END
    for n in 1..10e6 loop null; end loop; 
end computation;
/
LINE/COL  ERROR
--------- -------------------------------------------------------------
4/9       PLS-00179: $ERROR: This procedure must be compiled with plsql_optimize_level=3 or higher!

alter session set plsql_optimize_level=3
/
alter procedure computation compile
/
exec computation 

PL/SQL procedure successfully completed.

Свободный перевод ответа от участника @Steven Feuerstein

Answered by 0xdb on October 20, 2020

Add your own answers!

Related Questions

Real time Laravel

0  Asked on January 2, 2021 by htmlprogrammer

       

Ошибка работы бота

1  Asked on January 1, 2021 by alexsn2020

       

Internal Server Error 500 Postman

1  Asked on January 1, 2021 by blacit

   

Ask a Question

Get help from others!

© 2021 InsideDarkWeb.com. All rights reserved.