ORBADA - Dokumentacja
Author: Andrzej Kałuża, ORBADA
Description: Organizer Bazy Danych, Db Pages

2016-12-06 08:15
ORBADA » Dokumentacja po Polsku » Dokumentacja wtyczek » Oracle Tune » Widok SQL Profiler » Integracja z programami zewnętrznymi

### 5.A.2.1.4.1. Uruchomienie

    DECLARE
      l_result  PLS_INTEGER;
    BEGIN
      l_result := DBMS_PROFILER.start_profiler(SYSDATE,
        'SESSIONID:'||userenv('SESSIONID')||' TERMINA:'||userenv('TERMINAL')||' USER:'||USER, :runid);
    END;

Po wykonaniu powyższego kodu należy pobrać parametr :RUNID, będzie potrzebny później.

### 5.A.2.1.4.1. Zatrzymanie

    DECLARE
      l_result  PLS_INTEGER;
    BEGIN
      l_result := DBMS_PROFILER.stop_profiler;
      dbms_profiler.rollup_run(:runid);
    END;

Wymagane jest podanie parametru :RUNID pobranego po wykonaniu kodu uruchomienia

### 5.A.2.1.4.3. Wstrzymanie

    DECLARE
      l_result PLS_INTEGER;
    BEGIN
      l_result := dbms_profiler.flush_data;
      l_result := dbms_profiler.pause_profiler;
      dbms_profiler.rollup_run(:runid);
    END;

Wymagane jest podanie parametru :RUNID pobranego po wykonaniu kodu uruchomienia.

### 5.A.2.1.4.4. Wznowienie

    DECLARE
      l_result PLS_INTEGER;
    BEGIN
      l_result := dbms_profiler.resume_profiler;
    END;

### 5.A.2.1.4.5. Dostosowanie wyników do wyświetlenia źródeł wykonanych obiektów

Poniższy kod należy uruchomić zaraz po wykonaniu bloku zatrzymania SQL Profiler

    DECLARE
      offset NUMBER;
      CURSOR c1_triggers IS
        SELECT unit_owner, unit_name, unit_type, unit_number
          FROM plsql_profiler_units
         WHERE runid = :runid
           AND unit_type = 'TRIGGER';
    BEGIN
      FOR c1 IN c1_triggers LOOP
        SELECT NVL(MIN(line) - 1, -1)
          INTO offset
          FROM all_source
         WHERE owner = c1.unit_owner
           AND name  = c1.unit_name
           AND type  = c1.unit_type
           AND (UPPER(text) LIKE '%BEGIN%' OR UPPER(text) LIKE '%DECLARE%');
        IF offset > 0 THEN
          UPDATE plsql_profiler_data
             SET line# = line# + offset
           WHERE runid = :runid
             AND unit_number = c1.unit_number;
        END IF;
      END LOOP;
      COMMIT;
    END;

Wymagane jest podanie parametru :RUNID pobranego po wykonaniu kodu uruchomienia.

ORBADA » Dokumentacja po Polsku » Dokumentacja wtyczek » Oracle Tune » Widok SQL Profiler » Integracja z programami zewnętrznymi
• © 2007–2016 • Andrzej Kałuża • Powered By DBPAGES • Hostet at •