=====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