PL/SQL - Mit dem DBMS_PROFILER Package arbeiten
Für das Package DBMS_PROFILER (ab 8i) steht schon seit längeren (11g R1) eine erweiterte Option, DBMS_HPROF zur Verfügung.
Allerdings kann das DBMS_HPROF nur dann eingesetzt werden, wenn auch ein Zugriff auf das Filesystem des DB Server möglich ist. In einer gehosteten/Dienstleister/Cloud Umgebung ist das allerdings mit größeren Schwierigkeiten für den Pl/SQL Entwickler am Ende der Nahrungskette verbunden.
Daher wird nun zuerst mit dem DBMS_PROFILER gearbeitet um hier erste Ergebnisse erzielen zu können.
Ablauf:
- Test ob das Package eingesetzt werden kann
- Repository Tabellen im Anwendungsschema anlegen
- Eine erste Routine testen
Steht das Package zur Verfügung und kann es verwendet werden
SET serveroutput ON DECLARE v_out1 VARCHAR2(3000); v_out2 VARCHAR2(3000); v_check VARCHAR2(2000); BEGIN DBMS_PROFILER.GET_VERSION ( major => v_out1 , minor => v_out2 ); DBMS_OUTPUT.put_line('Mayor Version : '||v_out1||' : Minor Version '|| v_out2 ); v_check:=DBMS_PROFILER.INTERNAL_VERSION_CHECK; DBMS_OUTPUT.put_line('Result of Version Check : '||v_check); END;
Tritt keine Exception auf kann das Package eingesetzt werden.
Repo Tabelle anlegen
Das Skript dazu steht unter „$ORACLE_HOME/rdbms/admin/proftab.sql“ zur Verfügung.
Profiler verwenden
EXECUTE dbms_profiler.start_profiler; --================= --PL/SQL ausführen --============= EXECUTE dbms_profiler.stop_profiler; --Auswerten SELECT runid, run_date, run_comment FROM plsql_profiler_runs
Auswerten
Für die Auswertung kann ein HTML Bericht erzeugt werden, siehe dazu die „My Oracle Support Note Doc ID 243755.1“.
Allerdings muss dazu SQL*Plus eingesetzt werden, SQL*CL ist dafür nicht ausreichend:
SP2-0158: Unbekannte SET-Option "show" Zeile 676: "set SQLC MIX" ist veraltet. SP2-0158: Unbekannte SET-Option "recsep" Autotrace deaktiviert