=====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, [[https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_HPROF.html|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 ---- ==== Quellen ==== Doku: * https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_PROFILER.html Web: * https://blog.go-faster.co.uk/2023/04/investigating-unfamiliar-plsql-with.html