Om du använder Oracle 11g bör du ta en titt på den hierarkiska profileraren, DBMS_HPROF. Detta är ett verktyg som ger dig förfluten tid för alla noder i ett PL/SQL-program. Som namnet antyder är det särskilt användbart för att undersöka program som anropar program som anropar program. Den identifierar också timing för SQL-satser som skiljer sig från funktionsanrop. Läs mer .
Det är en del av standard 11g-distributionen och är därför gratis. Tja, när du väl har betalat för din licens är det gratis :)
Som standard beviljas inte rättigheter för DBMS_HPROF-paketet till någon. Så du måste få någon med SYSDBA-åtkomst för att se dig rätt. Analysen kräver också att vissa tabeller skapas. Ingen av dessa saker borde vara ett problem, men jag vet att de ibland är det.
Tyvärr, du är på en tidigare version. Så det lämnar dig med bara DBMS_PROFILER, som har funnits sedan 9i. Detta fungerar i princip bra för ett enda program. Dess största nackdel är att vi bara kan använda det på program som vi har CREATE-privilegiet för (dvs. bara program i vårt schema om vi inte har CREATE ANY PROCEDURE-privilegiet, vilket vanligtvis betyder att vara en DBA). För profilering av inbäddade SQL-satser måste vi också använda paketet DBMS_TRACE. Läs mer.