Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:which_package_call_this_sql

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 V$SESSION steht uns zur Verfügung (aus der Doku Database Reference 11g R2 )

  • 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 V$SQL lässt sich sogar die Zeilennummer im PL/SQL Block ermitteln.

In der V$SQL kann verwendet werden (aus der Doku Database Reference 11g R2 )

  • ROGRAM_ID - Program identifier
  • PROGRAM_LINE# - Program line number

Mit der ID kann über die DBA_OBJECTS der Objekt Name ermittelt werden.

SELECT * FROM dba_objects WHERE  object_id=&MY_PROGRAM_ID

Anlayse

Das ist sehr praktisch um zum Beispiel zu analysieren, welche PL/SQL Objekte in letzter Zeit aufgerufen und welche Zeile SQL Code hier verwendet wurde:

SELECT COUNT(*)
    , obj.owner
    , obj.object_type
    , obj.object_name
    , s.PROGRAM_LINE#
    , MIN(to_date(s.first_load_time,'YYYY-MM-DD/HH24:MI:SS')) AS min_first_load
    , MAX(to_date(s.first_load_time,'YYYY-MM-DD/HH24:MI:SS')) AS max_first_load    
  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  
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
prog/which_package_call_this_sql.txt · Zuletzt geändert: 2015/09/24 08:53 von gpipperr