There are some PL/SQL performance features that are only available in compiled database code. For example, the result cache:
declare
l int;
function f ( p int )
return int result_cache as
retval int;
begin
return retval;
end f;
begin
l := f ( 1 );
end;
/
ORA-06550: line 5, column 12:
PLS-00999: implementation restriction (may be temporary) RESULT_CACHE is disallowed on subprograms in anonymous blocks
Shifting PL/SQL as-is from APEX -> database packages may have little or no direct performance benefit. But it does open up tuning possibilities not available if all the code is in your APEX app.