prog:which_package_call_this_sql
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
prog:which_package_call_this_sql [2015/09/24 08:52] – [Anlayse] gpipperr | prog:which_package_call_this_sql [2015/09/24 08:53] (aktuell) – [Anlayse] gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====Den Name und die Zeilennummer eines PL/SQL Package für ein SQL Statement in der DB ermitteln==== | ||
+ | |||
+ | Über **V$SESSION** und **V$SQL** lässt sich das PL/SQL Package ermitteln das ein bestimmtes SQL Statement aufgerufen hat. | ||
+ | |||
+ | In <fc # | ||
+ | |||
+ | * **PLSQL_ENTRY_OBJECT_ID** - Object ID of the top-most PL/SQL subprogram on the stack (or NULL if there is no PL/SQL subprogram on the stack) | ||
+ | * **PLSQL_ENTRY_SUBPROGRAM_ID** - Subprogram ID of the top-most PL/SQL subprogram on the stack (or NULL if there is no PL/SQL subprogram on the stack) | ||
+ | * **PLSQL_OBJECT_ID** - Object ID of the currently executing PL/SQL subprogram (or NULL if executing SQL) | ||
+ | * **PLSQL_SUBPROGRAM_ID** - Subprogram ID of the currently executing PL/SQL object (or NULL if executing SQL) | ||
+ | |||
+ | |||
+ | Über die <fc # | ||
+ | |||
+ | In der V$SQL kann verwendet werden (aus der Doku [[http:// | ||
+ | ) | ||
+ | |||
+ | * **ROGRAM_ID** - Program identifier | ||
+ | * **PROGRAM_LINE# | ||
+ | |||
+ | |||
+ | Mit der ID kann über die DBA_OBJECTS der Objekt Name ermittelt werden. | ||
+ | |||
+ | <code sql> | ||
+ | select * from dba_objects where object_id=& | ||
+ | </ | ||
+ | === Anlayse === | ||
+ | |||
+ | Das ist sehr praktisch um zum Beispiel zu analysieren, | ||
+ | <code sql> | ||
+ | select count(*) | ||
+ | , obj.owner | ||
+ | , obj.object_type | ||
+ | , obj.object_name | ||
+ | , s.PROGRAM_LINE# | ||
+ | , min(to_date(s.first_load_time,' | ||
+ | , max(to_date(s.first_load_time,' | ||
+ | from dba_objects obj | ||
+ | , v$sql s | ||
+ | where s.program_id = obj.object_id | ||
+ | and s.program_id != 0 | ||
+ | group by obj.owner | ||
+ | , obj.object_type | ||
+ | , obj.object_name | ||
+ | , obj.subobject_name | ||
+ | , s.PROGRAM_LINE# | ||
+ | order by obj.owner | ||
+ | </ | ||
prog/which_package_call_this_sql.txt · Zuletzt geändert: 2015/09/24 08:53 von gpipperr