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

