Please enable JavaScript to view this site.

Invantive Estate

Navigatie: Invantive Estate > Prestaties

PL/SQL-profilering

Inhoud Vorige Home Volgende More

Met PL/SQL-profilering kunnen metingen uitgevoerd worden van de doorlooptijd van PL/SQL-code. Via Instellingen kun je PL/SQL-profilering inschakelen voor alle PL/SQL-aanroepen vanuit schermen en achtergrondprocessen.

Stappen:

Profilering inschakelen via ‘Instellingen’.

Profilering kost veel I/O bandbreedte. Daarom indien mogelijk eerst de achtergrondplanners uitschakelen.

Gebruik in site.properties de gebruiker ‘bubs’ i.p.v. ‘bubs_tomcat’ gebruiken vanwege rechten:

bubs_tomcat.user=bubs

bubs_tomcat.password=bubs

Let op: hierdoor heeft de applicatie volledige toegang tot Invantive Estate, niet alleen via de vrijgegeven

!

Tomcat herstarten (‘/etc/init.d/bubs3 restart’ of ‘net stop ‘Apache Tomcat’’, ‘net start ‘Apache’ Tomcat’).

De resultaten kun je opvragen met:

 

select r.runid

,      u.unit_type

,      u.unit_name

,      d.line#

,      d.total_occur

,      d.total_time/1e9 total_time_ms

,      s.text

from   plsql_profiler_runs r

join   plsql_profiler_units u

on     r.runid = u.runid

join   plsql_profiler_data d

on     u.unit_number = d.unit_number

and    u.runid       = d.runid

/* Optioneel */

join   user_source s

on     s.line = d.line#

and    s.name = u.unit_name

and    s.type = u.unit_type

where  r.runid = :runid

and    d.total_time/1e9 > 1/100 /* Meer dan 1/100 seconde. */

order

by     d.total_time desc

 

De uitkomsten zien er als volgt uit:

PL/SQL Profilering met TOAD

Het is ook mogelijk om handmatig PL/SQL-procedures te profileren met:

 

declare

 l varchar2(2000);

begin

 dbms_profiler.start_profiler();

 dbms_output.put_line('s=' || to_char(sysdate, 'hh24miss'));

 for i in 1..1000 loop

   select cig_omschrijving

   into l

   from bubs_mijn_rechten_r

   ;

 end loop;

 dbms_output.put_line(to_char(sysdate, 'hh24miss'));

 dbms_profiler.stop_profiler();

end;