Oracle Workshop I

                   Session Tracing




                        H. Ciganek

 03.08.2007                 ...
Tracing - Definition
Tracing      Ablaufverfolgung zur (Performance-) Analyse oder Fehlersuche

Oracle SQL Tracing
• Ident...
Tracing in eigener Session
Metalink Note: 376442.1
-- 1. Einstellungen ---------------------------
alter session set timed...
Webanwendung Tracing – Teil 1
Metalink Note: kein
-- 0. Vorbereitung -----------------------------------------------------...
Event 10046
Metalink Note: 21154.1
Event 10046 = diagnostisches Ereignis für SQL_TRACE Aktionen
Levels:
• Level 1 = defaul...
Trace Analyzer Handhabung

1. Report wird auf dem Server generiert
sqlplus <usr>/<pwd>
exec trca$i.trace_analyzer('<Trace ...
Trace Analyzer Objekte
TABLES
TRCA$_TRACE,           TRCA$_AUDIT_ACTIONS
TRCA$_IDLE_EVENT,      TRCA$_CALL_SUMMARY
TRCA$_W...
Deinstallation TRCANLZR
cmd
deinstallTRCA INTDEV05




03.08.2007               Oracle Workshop - Session Tracing   15



...
Upcoming SlideShare
Loading in...5
×

Oracle workshop sessiontracing

1,752

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,752
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
32
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Oracle workshop sessiontracing"

  1. 1. Oracle Workshop I Session Tracing H. Ciganek 03.08.2007 1 Agenda • Tracing • Tracing in eigener und fremder Session • Tracing in der Webanwendung (mehrere Session) • Diagnostisches Ereignis + Levels für Tracing • Trace Analyzer (TRCANLZR) 03.08.2007 Oracle Workshop - Session Tracing 2 1
  2. 2. Tracing - Definition Tracing Ablaufverfolgung zur (Performance-) Analyse oder Fehlersuche Oracle SQL Tracing • Identifikation der Top SQL Abfragen • Explain Plan • Call summary (parse, execute, fetch) • I/O für Objekte • Werte für Bind Variables • CBO Statistiken • Hot Blocks • Wait Events • Latches 03.08.2007 Oracle Workshop - Session Tracing 3 Tracing – gängige Befehle (set autotrace on) alter system|session set sql_trace=true; exec dbms_session.set_sql_trace(true); exec dbms_support.start_trace_in_session (sid, serial#); exec dbms_system.set_sql_trace_in_session (sid, serial#, sql_trace); exec dbms_monitor.session_trace_enable (session_id, serial#, waits, binds); exec dbms_monitor.client_id_trace_enable (client_id, waits, binds); Neu bei 10gR2 exec dbms_monitor.SERV_MOD_ACT_TRACE_ENABLE(SERVICE_NAME, MODULE_NAME, ACTION_NAME, WAITS, BINDS, INSTANCE_NAME); Trace-Datei Server Verzeichnis Parameter USER_DUMP_DEST 03.08.2007 Oracle Workshop - Session Tracing 4 2
  3. 3. Tracing in eigener Session Metalink Note: 376442.1 -- 1. Einstellungen --------------------------- alter session set timed_statistics = true; alter session set statistics_level = all; alter session set max_dump_file_size = unlimited; -- 2. Tracing starten -------------------------- alter session set events '10046 trace name context forever,level 12'; -- 3. Trace-File Name abfragen ----------------- oradebug setmypid oradebug tracefile_name -- 4. >> Hier Abfragen zum Tracen absetzen ------ Select * from ...... -- 5. Tracing beenden --------------------------- alter session set events '10046 trace name context off'; -- 6. Traceanalyzer starten --------------------- 03.08.2007 Oracle Workshop - Session Tracing 5 Tracing in fremder Session Metalink Note: 1058210.6 -- 1. Einstellungen ------------------------------------------------------ alter system set timed_statistics = true SCOPE=BOTH; alter system set statistics_level = all SCOPE=BOTH; alter system set max_dump_file_size = unlimited SCOPE=BOTH; --2. Processe abfragen --------------------------------------------------- select s.paddr,s.username, p.pid,p.spid from v$session s, v$process p where s.paddr=p.addr and s.username = 'TEST1'; /* PADDR USERNAME PID SPID ---------------- ------------------------------ ---------- ------------ 000007FF8F2E05C8 TEST1 15 7176 */ -- 3a. Process einbinden mit Oracle Prozess Id --------------------------- oradebug setorapid &PID -- 3b. Process einbinden mit Betriebsystem Prozess Id -------------------- oradebug setospid &SPID -- 4. Tracing starten ---------------------------------------------------- oradebug event 10046 trace name context forever, level 12 -- 5. Trace-File Name abfragen ------------------------------------------- oradebug tracefile_name -- 6. >> Hier die Anwendung oder Maske in der fremder Session benutzen --- -- 7. Tracing ausschalten ------------------------------------------------ oradebug event 10046 trace name context off -- 8. Traceanalyzer starten ---------------------------------------------- 03.08.2007 Oracle Workshop - Session Tracing 6 3
  4. 4. Webanwendung Tracing – Teil 1 Metalink Note: kein -- 0. Vorbereitung --------------------------------------------------------- -- 0.A – Neuen Oracle Service extra für Tracing erstellen -> alter system set service_names='INTDEV05.int.lidl.net','TRACE_INTDEV05.int.lidl.net' SCOPE=BOTH; -- 0.B – Extra Eintrag mit neuem Service in TNSNAMES.ORA -- 0.C – Zusätzliche Konfiguration des AppServer für neuen Service -- 0.D – UDUMP täglich entleeren dbms_scheduler -- 1. Einstellungen -------------------------------------------------------- alter system set timed_statistics = true SCOPE=BOTH; alter system set statistics_level = all SCOPE=BOTH; alter system set max_dump_file_size = unlimited SCOPE=BOTH; -- 2. Tracing starten ------------------------------------------------------ exec dbms_monitor.SERV_MOD_ACT_TRACE_ENABLE ('TRACE_INTDEV05.int.lidl.net', BINDS => TRUE); -- 3. Tracing abfragen ----------------------------------------------------- select * from DBA_ENABLED_TRACES ; 03.08.2007 Oracle Workshop - Session Tracing 7 Webanwendung Tracing – Teil 2 -- 3. >> Hier die Webanwendung benutzen ------------------------------------- .......... -- 4. Optional Tracing ausschalten ------------------------------------------ --Exec dbms_monitor.SERV_MOD_ACT_TRACE_DISABLE ('TRACE_INTDEV05.int.lidl.net'); -- Metalink Note: 280543.1 -- 5. Tracefiles Mergen --- >> dbms_scheduler ------------------------------- host trcsess output=test1.trc service=TRACE_INTDEV05.int.lidl.net *.trc -- 6. Traceanalyzer starten ------------------------------------------------- 03.08.2007 Oracle Workshop - Session Tracing 8 4
  5. 5. Event 10046 Metalink Note: 21154.1 Event 10046 = diagnostisches Ereignis für SQL_TRACE Aktionen Levels: • Level 1 = default - alle Aktivitäten bis Trace Session ist gestoppt • Äquivalent zu: alter session set sql_trace=true; • Level 4 = Level 1 + Werte für bind Variables • Level 8 = Level 1 + Wait Events • Level 12 = Level 4 + Level 8 Syntax: alter session set events '10046 trace name context forever, level 12'; oder Exec dbms_support.start_trace_in_session(sid, serial#, waits, binds); .... 03.08.2007 Oracle Workshop - Session Tracing 9 Trace Analyzer - TRCANLZR Note: 224270.1 Das Tool für Bereitstellung und Interpretation der Trace-Files Ablauf: • Auslesen der SQL Trace-Dateien generiert von EVENT 10046 mit Level 1, 4, 8, oder 12 • Parsen der Trace-Datei - Auswählen, Verarbeiten, and Speichern der relevanten Informationen ins Staging Repository • Erstellug des HTML-Reports lokal ähnlich wie mit TKPROF oder TRCSUMMARY 03.08.2007 Oracle Workshop - Session Tracing 10 5
  6. 6. Trace Analyzer Handhabung 1. Report wird auf dem Server generiert sqlplus <usr>/<pwd> exec trca$i.trace_analyzer('<Trace Dateiname>'); 2. Report wird lokal beim Entwickler generiert sqlplus <usr>/<pwd> Start trcanlzr.sql <Trace Dateiname>; Beispiel: start trcanlzr.sql test1.trc ...generating report Abgelaufen: 00:00:00.09 Trace Analyzer Report "trcanlzr_0_43.html" has been created in F:ORACLEADMININTDEV05UDUMP Abgelaufen: 00:00:20.76 Abgelaufen: 00:00:00.37 ...copying report ...report "trcanlzr_0_43.html" has been copied into local directory ...exiting now (hit enter key) 03.08.2007 Oracle Workshop - Session Tracing 11 Trace Analyzer Report 03.08.2007 Oracle Workshop - Session Tracing 12 6
  7. 7. Trace Analyzer Objekte TABLES TRCA$_TRACE, TRCA$_AUDIT_ACTIONS TRCA$_IDLE_EVENT, TRCA$_CALL_SUMMARY TRCA$_WAIT, TRCA$_BIND TRCA$_ERROR, TRCA$_GAP TRCA$_XCTEND, TRCA$_STAT TRCA$_CALL, TRCA$_CURSOR TRCA$_TABLES, TRCA$_CURSOR_TABLES TRCA$_PLAN_TABLE, TRCA$_EXEC_SUMMARY TRCA$_WAIT_SUMMARY, TRCA$_STAT_SUMMARY TRCA$_HOT_BLOCK, TRCA$_CURSOR_WAIT_LATCH TRCA$_EXTENTS, TRCA$_IND_PARTITIONS TRCA$_TAB_PARTITIONS, TRCA$_INDEXES TRCA$_CURSOR_WAIT_SEGMENT PACKAGES TRCA$D – Hauptpaket TRCA$I – Explain plans, segment statistics VIEW TRCA$_CURSOR_V 03.08.2007 Oracle Workshop - Session Tracing 13 Installation TRCANLZR cmd installTRCA INTDEV05 ABLAUF ----------------------------------------------------------------------------------------------------------- new 2: DATAFILE 'H:ORACLEORADATAINTDEV05TRCA01.dbf' Tablespace created. Specify TRCANLZR password Enter value for trcanlzr_password: test Specify Host String including @ prefix (i.e.: @CERBDEV) Enter value for host_string: @INTDEV05 Below are the list of online tablespaces in this database. Decide which tablespace you wish to create the Trace Analyzer tables and indexes. TABLESPACE_NAME CONTENTS ------------------------------ --------- TEMP TEMPORARY TRCA PERMANENT Specify TRCANLZR user's default tablespace Enter value for default_tablespace: TRCA Specify TRCANLZR user's temporary tablespace. Enter value for temporary_tablespace: TEMP 03.08.2007 Oracle Workshop - Session Tracing 14 7
  8. 8. Deinstallation TRCANLZR cmd deinstallTRCA INTDEV05 03.08.2007 Oracle Workshop - Session Tracing 15 8

×