Jeśli używasz Oracle 11g, powinieneś spojrzeć na hierarchiczny profiler, DBMS_HPROF. Jest to narzędzie, które poda czasy, które upłynął dla wszystkich węzłów w programie PL/SQL. Jak sama nazwa wskazuje, jest to szczególnie przydatne do badania programów wywołujących programy wywołujące programy. Identyfikuje również terminy dla instrukcji SQL różniące się od wywołań funkcji. Dowiedz się więcej .
Jest to część standardowego wdrożenia 11g, a zatem jest bezpłatny. Cóż, jak już zapłacisz za licencję, to nic nie kosztuje :)
Domyślnie prawa do pakietu DBMS_HPROF nie są przyznawane nikomu. Musisz więc poprosić kogoś z dostępem do SYSDBA, aby cię dobrze zobaczył. Analiza wymaga również stworzenia niektórych tabel. Żadna z tych rzeczy nie powinna stanowić problemu, ale wiem, że czasami tak jest.
Niestety, korzystasz z wcześniejszej wersji. Tak więc pozostaje ci tylko DBMS_PROFILER, który istnieje od 9i. To w zasadzie działa dobrze dla pojedynczego programu. Jego główną wadą jest to, że możemy go używać tylko w programach, dla których mamy uprawnienie CREATE (tj. tylko programy w naszym schemacie, chyba że mamy uprawnienie CREATE ANY PROCEDURE, co zwykle oznacza bycie DBA). Ponadto do profilowania wbudowanych instrukcji SQL musimy użyć pakietu DBMS_TRACE. Dowiedz się więcej.