Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL-Trace, 10046-Ereignis in Oracle:trcsess, tkprof-Dienstprogramm

Die Ablaufverfolgung ist ein wichtiger Bestandteil der Oracle-Datenbankoptimierung. Dies hilft dabei, alle Problemaussagen und Warteereignisse zu erfassen, die für den langsamen Ablauf der Sitzung verantwortlich sind.
Die Oracle-Datenbank bietet viele schnellste Möglichkeiten, die lokale Sitzung und andere Benutzersitzungen zu verfolgen   und die Ablaufverfolgung zu formatieren, um sie lesbar zu machen

Lassen Sie uns einen Blick darauf werfen, wie Sie den SQL-Trace, das 10046-Ereignis in der Oracle-Datenbank und das trcsess, tkprof-Dienstprogramm aktivieren

Inhaltsverzeichnis

SQL-Trace, 100046-Ereignis

Wenn Sie in einer lokalen Sitzung verfolgen möchten, gehen Sie wie folgt vor, um den SQL-Trace zu aktivieren 

Normale Spur Sitzungssatz ändern sql_trace =true; -- Um einen Trace auf eine andere Sitzung zu setzen set sql_trace =false; -- Ablaufverfolgung ausschalten Volle Ebene mit Warteereignis und Ablaufverfolgung binden alter session set events ='10046 trace name context forever, level 12';Um die Ablaufverfolgung zu deaktivierenalter session set events ='10046 trace name context off';Dasselbe wie bei normaler Ablaufverfolgung exec DBMS_SESSION.set_sql_trace(sql_trace => TRUE);exec DBMS_SESSION.set_sql_trace(sql_trace => FALSE);

Wenn Sie in einer anderen laufenden Sitzung verfolgen möchten, folgen Sie den Schritten

Normale Spur Führen Sie dbms_system.set_sql_trace_in_session (‘sid’,’serial’,true) aus; -- Um die Ablaufverfolgung zu aktivieren, führen Sie dbms_system.set_sql_trace_in_session (‘sid’,’serial’,true) aus; -- Ablaufverfolgung ausschalten Volle Ebene mit Warteereignis und Ablaufverfolgung binden Ausführen von dbms_system.set_ev(‘sid’,’serial’,10046,12,’’);Um die Ablaufverfolgung zu deaktivieren Führen Sie dbms_system.set_ev(‘sid’,’serial’,10046,0,’’);
aus

Sie müssen die Verwendung von 12,0 in verschiedenen obigen Anweisungen gesehen haben. Es handelt sich um Ablaufverfolgungsebenen. Oracle Tracing verfügt über Ablaufverfolgungsebenen. Hier sind die gültigen Werte

0 Keine Spur. Wie das Ausschalten von sql_trace.
2 Das Äquivalent zum regulären sql_trace
Er bietet Ausführungspfad, Zeilenanzahl, kleinste Flatfile
Vorteile
Bereitstellung eines Ausführungspfads
Bereitstellung von Zeilenzahlen
Erzeugt die kleinste flache Datei
Nachteile
Kann nicht feststellen, welche Werte zur Laufzeit an SQL geliefert wurden
Wenn die Statistiken für die Abfrage niedrig sind, aber die Laufzeit lang ist, kann nicht festgestellt werden, welche Ereignisse die lange Wartezeit verursacht haben
4 Dasselbe wie 2, aber mit zusätzlichen Bind-Variablenwerten
Vorteile
Stellt den Ausführungspfad bereit
Stellt die Zeilenanzahl bereit
Erkennt, für welche Werte die Anweisung ausgeführt wurde
Nachteile
Wiederum, wenn die Laufzeit lang und die Statistik niedrig ist, ist es schwer zu sagen, warum bei dieser Art von Ablaufverfolgung.
Erzeugt eine größere flache Datei als die reguläre Ablaufverfolgung, weil Bind-Variableninformationen gespeichert werden müssen.
8 Dasselbe wie 2, aber mit zusätzlichen Wait-Ereignissen
Reguläre Ablaufverfolgung plus Zeitangaben für Datenbankoperationen, auf deren Ausführung die SQL gewartet hat, um abgeschlossen zu werden. Zum Beispiel:Festplattenzugriffszeiten.
Vorteile
Bereitstellung eines Ausführungspfads
Bereitstellung von Zeilenzählungen
Kann Zeitangaben für alle mit SQL verbundenen Ereignisse angeben.
Nachteile
Die Ablaufverfolgungsdatei kann aufgrund all der Informationen, die Oracle in die Ablaufverfolgungsdatei schreiben muss, leicht an ihre Grenzen stoßen, und dann sind nur Teilinformationen in der Ablaufverfolgungsdatei verfügbar.
Bind-Variableninformationen sind nicht verfügbar
12 Dasselbe wie 2, aber mit Bind-Variablenwerten und Wait-Ereignissen
Reguläre Ablaufverfolgung mit sowohl Wait- als auch Bind-Informationen. Enthält die vollständigsten Informationen und erzeugt die größte Ablaufverfolgungsdatei.
Stellt den Ausführungspfad bereit.
Stellt die Anzahl der Zeilen dar.
Kann Zeitangaben für alle mit SQL verbundenen Ereignisse angeben.
Kann feststellen, welche Werte die SQL wurde mit
Vorteilen ausgeführt
Stellt den Ausführungspfad bereit
Stellt die Anzahl der Zeilen bereit
Erkennt die Zeiten für alle mit SQL verbundenen Ereignisse.
Erkennt, mit welchen Werten die SQL ausgeführt wurde
Nachteile
Die Ablaufverfolgungsdatei kann aufgrund all der Informationen, die Oracle in die Ablaufverfolgungsdatei schreiben muss, leicht an ihre Grenzen stoßen, und dann sind nur Teilinformationen in der Ablaufverfolgungsdatei verfügbar.

Es gibt auch andere Möglichkeiten, die Verfolgung durchzuführen. Hier sind einige davon
(1) ORADEBUG
Dies erfordert eine Anmeldung als sysdba

oradebug setospid   1111   -- Debug-Sitzung mit dem angegebenen Oracle-Prozess idoradebug setorapid  1111  --- Debug-Sitzung mit dem angegebenen OS-Prozessoradebug-Ereignis 10046 Trace-Namenskontext für immer, Ebene 4; oradebug-Ereignis 10046 Trace-Namenskontext deaktiviert; --- Dies deaktiviert den Traceoradebug close_trace  --- Dies schließt  die Ablaufverfolgungsdatei Oradebug TRACEFILE_NAME;

(2) Mit Oracle 10g wurden die SQL-Tracing-Optionen mit dem DBMS_MONITOR-Paket erweitert

EXECUTE dbms_monitor.session_trace_enableWas ähnlich istALTER SESSION SET EVENTS '10046 Trace-Namenskontext für immer, Ebene 2';EXECUTE dbms_monitor.session_trace_enable (binds=>true);Was ähnlich istALTER SESSION SET EVENTS '10046 Trace-Namenskontext für immer, Ebene 4';EXECUTE dbms_monitor.session_trace_enable (waits=>true);Was ähnlich istALTER SESSION SET EVENTS '10046 Trace-Namenskontext für immer, Ebene 8';EXECUTE dbms_monitor.session_trace_enable('sid','serial#')Was ähnlich istexecute dbms_system.set_ev( 'sid','serial',10046,2,'');EXECUTE dbms_monitor.session_trace_enable ('sid','serial#',binds=>true);was ähnlich istexecute dbms_system.set_ev('sid','serial' ,10046,4,'');EXECUTE dbms_monitor.session_trace_enable ('sid','serial#',waits=>true);was ähnlich istexecute dbms_system.set_ev('sid','serial',10046,8,'' );

Es gibt viele andere Funktionen, die in dbms_monitor verfügbar sind. Wir können die Verfolgung basierend auf der Client-ID und auf mehrere Arten aktivieren

So identifizieren Sie die Trace-Dateien

Wir können die Ablaufverfolgungsdateien anhand der Spid der Sitzung identifizieren. Außerdem enthält die Ablaufverfolgungsdatei am Anfang der Ablaufverfolgungsdatei das Paar sid,seriennummer .
Die folgende Abfrage kann verwendet werden, um die Ablaufverfolgungsdatei der lokalen Sitzung zu finden

c.value auswählen || '/' || d.instance_name ||'_ora_' || a.spid || '.trc'-Tracefrom v$process a, v$session b, v$parameter c, v$instance dwhere a.addr =b.paddrand b.audsid =userenv('sessionid')and c.name ='user_dump_dest'/ 

Es gibt eine weitere einfache Möglichkeit, die Trace-Datei zu identifizieren, die als Trace-ID bezeichnet wird

Sitzungssatz ändern tracefile_identifer=’ORAC’; Dies ist die Kennung

Beispiel-Trace-Datei

Trace-Datei /app/oracle/TEST/diag/rdbms/test/TEST/trace/TEST_ora_13025_IDEN.trcOracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64-Bit-ProduktionMit Partitionierung, Real Application Clusters, OLAP, Data Mining und Real Application Testing optionsORACLE_HOME =/app/oracle/TEST/11.2.0/dbSystemname:    SunOS12Knotenname:sun12Release:   5.10Version:   Generic_144488-11Maschine:   sun4uInstanzname:TESTRedo-Thread, der von dieser Instanz bereitgestellt wird:1Oracle-Prozessnummer:202Unix-Prozess-PID:13025 , Bild:[email protected] SunOS12*** 2013-10-21 12:28:56.461*** SESSION ID:(3875.17341) 2013-10-21 12:28:56.461*** CLIENT ID:() 2013 -10-21 12:28:56.461*** SERVICENAME:(TEST) 2013-10-21 12:28:56.461*** MODULNAME:([email protected](TNS V1-V3)) 2013-10 -21 12:28:56.461*** ACTION NAME:() 2013-10-21 12:28:56.461CLOSE #4:c=0,e=11,dep=1,type=1,tim=8866891135825=====================PARSING IN CURSOR #5 len=356 dep=1 uid=173 oct=3 lid=173 tim=8866891136821 hv=2468783182 ad='4c70e4398' sqlid='0wmwsjy9kd92f'SELECT PROFILE_OPTION_ID, APPLICATION_ID, SITE_ENABLED_FLAG , APP_ENABLED_FLAG , RESP_ENABLED_FLAG , USER_ENABLED_FLAG, ORG_ENABLED_FLAG , SERVER_ENABLED_FLAG, SERVERRESP_ENABLED_FLAG, HIERARCHY_TYPE, USER_CHANGEABLE_FLAG FROM FND_PROFILE_OPTIONS WHERE PROFILE_OPTION_NAME =:B1 AND START_DATE_ACTIVE <=SYSDATE AND NVL(END_DATE_ACTIVE, SYSDATE)>=SYSDATEEND OF STMTBINDS # 5:Bind#0oacdty=01 mxl=128(80) mxlc=00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=01 csi=871 siz=128 off=0kxsbbbfp=ffffffff7d677b48  bln=128  avl=21 flg=0value="PER_BUSINESS_GROUP_ID"EXEC #5:c=0,e=1474,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=1374985481 ,tim=8866891138224FETCH #5:c=0,e=61,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=1,plh=1374985481,tim=8866891138429CLOSE #5:c=0,e=5,dep=1,type=3,tim=8866891138503=====================PARSING IN CURSOR #4 len=230 dep=1 uid=173 oct=3 lid=173 tim=8866891138634 hv=3575592451 ad='3aeea3da0' sqlid='55dc767ajydh3'SELECT PROFILE_OPTION_VALUE FROM FND_PROFILE_OPTION_VALUES WH ERE PROFILE_OPTION_ID =:B4 AND APPLICATION_ID =:B3 AND LEVEL_ID =10003 AND LEVEL_VALUE =:B2 AND LEVEL_VALUE_APPLICATION_ID =:B1 AND PROFILE_OPTION_VALUE IS NOT NULLEND OF STMTBINDS #4:Bind#0oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=96 off=0kxsbbbfp=ffffffff7d677b68  bln=22  avl=03  flg=05value=1204Bind#1oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=24kxsbbbfp=ffffffff7d677b80  bln=22  avl=02  flg=01value=800Bind#2oacdty=02 mxl=22(21) mxlc =00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=48kxsbbbfp=ffffffff7d677b98  bln=22  avl=04  flg=01value=50334Bind#3oacdty=02 mxl=22(21 ) mxlc=00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=72kxsbbbfp=ffffffff7d677bb0  bln=22  avl=01  flg=01value=0EXEC #4:c=0, e=377,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,plh=2802907561,tim=8866891138978FETCH #4:c=0,e=26, p=0,cr=3,cu=0,mis=0,r=0,dep=1,og=1,plh=2802907561,tim=886689113 9050CLOSE #4:c=0,e=2,dep=1,type=3,tim=8866891139116=====================PARSING IN CURSOR #5 len =191 dep=1 uid=173 oct=3 lid=173 tim=8866891139308 hv=303338305 ad='3bedf0e48' sqlid='7qs7fx89194u1'SELECT PROFILE_OPTION_VALUE FROM FND_PROFILE_OPTION_VALUES WHERE PROFILE_OPTION_ID =:B4 UND =EV_B3 UND L =EV:B2B3 UND L =EV:B2B3 LEVEL_VALUE =:B1 UND PROFILE_OPTION_VALUE IST NICHT NULLENDE VON STMTBINDS #5:Bind#0oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=96 off=0kxsbbbfp=ffffffff7d673b78  bln=22  avl=03  flg=05value=1204Bind#1oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=00 csi=00 siz=0 off=24kxsbbbfp=ffffffff7d673b90  bln=22  avl=02  flg=01value=800Bind#2oacdty=02 mxl=22(21) mxlc=00 mal=00 scl=00 pre=00oacflg=03 fl2=1206001 frm=00 csi =00 siz=0 off=48kxsbbbfp=ffffffff7d673ba8  bln=22  avl=04  flg=01value=10001

Wie man prüft, ob Trace in Oracle aktiviert ist

Wenn Sie die Ablaufverfolgung mit dem DBMS_MONITOR-Paket aktiviert haben, können wir mit der folgenden Abfrage prüfen, ob die Ablaufverfolgung aktiviert ist

set lines 180col module for a45col sql_trace_waits for a20col sql_trace_binds for a20col sql_trace for a20select username,module,sid,sql_trace,sql_trace_waits,sql_trace_binds from v$session where sql_trace='ENABLED'/

Wenn es durch andere Methoden aktiviert ist, besteht die einzige Möglichkeit zur Überprüfung darin, sich den Trace-Speicherort anzusehen und die aktuellen Trace-Dateien herauszufinden und dann die SID und die Seriennummer darin zu finden, und dann können Sie v$session abfragen, um die zu finden Sitzung und Sie können die Ablaufverfolgung deaktivieren, wenn Sie möchten

Oracle tkprof-Dienstprogramm

Die mit der obigen Methode erhaltenen Trace-Dateien liegen in Rohform vor, die mit dem Dienstprogramm tkprof (Transient Kernel PROFile-Dienstprogramm) in ein besser lesbares Format konvertiert werden kann.

tkprofUsage:tkprof-Tracefile-Ausgabedatei [explain=] [table=][print=] [insert=] [sys=] [sort=]table=schema.tablename   Verwenden Sie 'schema.tablename' mit der Option 'explain='. explain=user/password    Mit ORACLE verbinden und EXPLAIN PLAN.print=integer ausgeben    Nur die ersten "ganzzahligen" SQL-Anweisungen auflisten.aggregate=yes|noinsert=filename  SQL-Anweisungen und Daten innerhalb von INSERT-Anweisungen auflisten.sys=no           TKPROF listet SQL nicht auf Anweisungen werden als Benutzer SYS.record=Dateiname ausgeführt Nicht-rekursive Anweisungen in der Ablaufverfolgungsdatei aufzeichnen.waits=yes|no     Zusammenfassung für alle in der Ablaufverfolgungsdatei gefundenen Warteereignisse aufzeichnen.sort=option      Satz von null oder mehr der folgenden Sortieroptionen :prscnt  Anzahl der Parsing-Aufrufe prscpu  CPU-Zeit parsingprsela  Verstrichene Zeit Parsing    prsdsk  Anzahl der Lesevorgänge auf der Festplatte während der Analyse prsqry  Anzahl der Puffer für konsistentes Lesen während parseprscu   Anzahl der Puffer für aktuelle Lesevorgänge während parseprsmis  Anzahl der Fehler im Bibliothekscache während der Analyse execnt  Anzahl von ex ecute hieß execpu  CPU-Zeit, die für die Ausführung von exeela aufgewendet wurde  verstrichene Zeit für die Ausführung von exedsk  Anzahl der Lesevorgänge auf der Festplatte während der Ausführung exeqry  Anzahl der Puffer für konsistentes Lesen während der Ausführung wie oft fetch aufgerufen wurdefchcpu  CPU-Zeit verbracht mit fetchingfchela  verstrichene Zeit fetchingfchdsk  Anzahl der Festplattenlesevorgänge während fetchfchqry  Anzahl der Puffer für konsistentes Lesen während fetchfchcu   Anzahl der Puffer für aktuellen Lesevorgang während fetchfchrow  Anzahl der abgerufenen Zeilenuserid Benutzer-ID des Benutzers, der den Cursor geparst hat

Einige Beispiele

tkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchelatkprof file.trc file.txt  sys=no explain=userid/password  sort=prsela,exeela,fchelatkprof file.trc file .txt sys=notkprof file.trc file.txt sys=no explain=userid/password sort=prsela,exeela,fchelaDies gibt nur 10 SQL aus tkprof .trc elaps.prf sys=no explain=apps/ sort=(prsela,exeela,fchela) print=10Dies gibt alle SQL aus tkprof .trc elaps.prf sys=no explain=apps/apps sort=prsela,exeela,fchela

Beispielinhalt einer tkprof-Datei

TKPROF:Version 11.2.0.4.0 – Produktion am Dienstag, 17. Januar 14:12:41 2013Copyright (c) 1982, 2007, Oracle. Alle Rechte vorbehalten.Trace-Datei:TEST_ora_15941.trcSortieroptionen:execpu  fchcpu**************************************** ********************************************count    =Anzahl der OCI Prozedur wurde ausgeführtCPU      =CPU-Zeit in Sekunden executeelapsed  =verstrichene Zeit in Sekunden executedisk     =Anzahl physischer Lesevorgänge von Puffern von Diskquery    =Anzahl von Puffern, die für konsistente Lesevorgänge abgerufen wurden  =Anzahl von Puffern, die im aktuellen Modus abgerufen wurden (normalerweise für Aktualisierungen)rows     =Anzahl von Zeilen verarbeitet durch den Abruf- oder Ausführungsaufruf******************************************** *************************************SQL-ID:6w82ggrtysxPlan Hash:2325776775SELECT FUNCTION_NAME    FROM FND_USER_DESKTOP_OBJECTS  WHERE USER_ID =:b1  AND APPLICATION_ID =:b2  AND  RESPONSIBILITY_ID =:b3  AND TYPE ='FUNCTION'  AND ROWNUM <=10 ORDER BY SEQUENCEcall     count       cpu    elapsed       disk      query    current        rows------ ------  ---- ---- ---------- ---------- ---------- ---------- ----- --- ---------- ---------- ---------- ----------  ------- ---total        4      0,00       0,00          0          4          0           1 Fehler im Bibliothekscache während der Analyse:0 Optimierungsmodus:ALL_ROWS Parsing-Benutzer-ID:173  (APPS) Anzahl der erfassten Planstatistiken:173   (APPS) Anzahl der erfassten Planstatistiken:1 Zeile --------- ---------- ----------  --------------------- ------------------------------1          1          1  SORT ORDER BY (cr=4 pr=0 pw=0 time=0 us cost=6 size=41 card=1)1          1          1   COUNT STOPKEY (cr=4 pr=0 pw=0 time=0 us)1          1          1    TABLE ACCESS BY INDEX ROWID FND_USER_DESKTOP_OBJECTS (cr=4 pr=0 pw=0 time =0 US-Kosten=5 Größe=41 Karte=1)1          1          1     INDEXBEREICH S CAN FND_USER_DESKTOP_OBJECTS_N1 (cr=3 pr=0 pw=0 time=0 us cost=3 size=0 card=3)(object id 33596)Zeilen     Ausführungsplan-------  --------- ------------------------------------------0  SELECT STATEMENT   MODE:ALL_ROWS1   SORT ( ORDER BY)1    COUNT (STOPKEY)1     TABLE ACCESS   MODE:ANALYZED (BY INDEX ROWID) OF'FND_USER_DESKTOP_OBJECTS' (TABLE)1      INDEX   MODE:ANALYZED (RANGE SCAN) OF'FND_USER_DESKTOP_OBJECTS_N1' (INDEX)Verstrichene Zeiten umfassen das Warten auf folgende Ereignisse:Ereignis gewartet am                             Zeiten   max. Warten Gesamt gewartet----------------------------------------  Gewartet  ------ ----  ------------SQL*Nettonachricht an Client                     5        0,00          0,00SQL*Nettonachricht vom Client                     5        0,00          0,00**************** ****************************************************** **************SQL ID:276ut2ywquxPlan Hash:3856112528select object_name, icon_namefromfnd_desktop_objectscall     count       cpu    elapsed       disk      query    current        rows------- ------  ------ -- ---------- ---------- ---------- ----------  -------- -Parse 1 0,00 0,00 0 0 0 0 0,00 0,00 0 0 0 0 0 0 0,00 0,00 0 6 0 47 ------- ------ -------- ------ ----- ---------- ---------- ----------  ----------gesamt        5      0,00       0,00          0 6          0          47 Fehler im Bibliotheks-Cache d uring parse:0Optimizer mode:ALL_ROWSParsing user id:173  (APPS)Anzahl der erfassten Planstatistiken:1 Zeilen (1.) Zeilen (Durchschn.) Zeilen (max.)  Zeilenquellenoperation---------- ----- ----- ----------  ----------------------------------- ----------------47         47         47  TABLE ACCESS FULL FND_DESKTOP_OBJECTS (cr=6 pr=0 pw=0 time=0 us cost=2 size=1175 card=47)Zeilen     Ausführungsplan -------  ------------------------------------------- --------0  SELECT STATEMENT   MODE:ALL_ROWS47   TABLE ACCESS   MODE:ANALYZED (FULL) OF 'FND_DESKTOP_OBJECTS'(TABLE)

Oracle-Trace Dienstprogramm

Bei der Verwendung gemeinsam genutzter Serversitzungen sind viele Prozesse beteiligt. Die Ablaufverfolgung der Benutzersitzung ist über verschiedene Ablaufverfolgungsdateien verstreut, die zu verschiedenen Prozessen gehören. Dadurch ist es schwierig, sich ein vollständiges Bild vom Lebenszyklus einer Sitzung zu machen.
Das trcsess-Dienstprogramm konsolidiert die Trace-Ausgabe ausgewählter Trace-Dateien anhand mehrerer Kriterien

trcsess  [output=output_file_name] [session=session_id] [clientid=client_id] [service=service_name] [action=action_name] [module=module_name] [trace_files]trcsess output=main.trc service=TEST  *trc  

Nachdem die konsolidierte Ablaufverfolgungsdatei generiert wurde, können Sie tkprof darauf ausführen.

Weitere Informationen

In 11g und höher ist sql_trace auch ein Ereignis und kann mit der Ereignissyntax gesetzt werden:

SQL> oradebug doc Ereignisname sql_tracesql_trace:Ereignis für SQL traceUsage-------sql_tracewait , binden ,plan_stat , Ebene 

Sie könnten es also wie folgt verwenden, um SQL_TRACE zu aktivieren, das Bindungsinformationen anfordert:

Sitzungssatzereignisse ändern 'sql_trace bind=true';

oder Informationen binden und warten (beachten Sie, dass Kommas getrennt sind):

Sitzungssatzereignisse ändern 'sql_trace bind=true, wait=true';

Die weitere Ablaufverfolgung kann auf eine Reihe von SQL_IDs beschränkt werden, wenn Sie einen Filter dafür einschließen. Z. B.

Sitzungssatzereignisse ändern 'sql_trace [sql:sql_id=g3yc1js3g2689 | sql_id=7ujay4u33g337]bind=true, wait=true';

10046 EVENT-Ebenen:(die neuen sql_trace-Werte sind in [..] enthalten)
Dies sind Bit-Werte, die zusammengestellt werden können, um verschiedene Mischungen zu erhalten
1 – Standard-SQL_TRACE-Funktionalität aktivieren (Standard)
4 – Als Level 1 PLUS Trace-Bind-Werte [ bind=true ]
8 – Als Level 1 PLUS Ablaufverfolgung wartet [wait=true]
Dies ist besonders nützlich, um Latch Wait usw. zu erkennen.
Es kann aber auch verwendet werden, um Full-Table-Scans und Index-Scans zu erkennen.

Ab 11g sind diese zusätzlichen Bitebenen verfügbar:
16 – Generiere STAT-Zeilenabbilder für jede Ausführung [ plan_stat=all_executions ]
32 – Niemals Ausführungsstatistiken ausgeben [ plan_stat=never ]

Ab 11.2.0.2 ist diese zusätzliche Bitebene verfügbar:
64 – Adaptiver Dump von STAT-Zeilen. [ plan_stat=adaptive ]
Dies gibt die STAT-Informationen aus, wenn ein SQL länger als etwa 1 Minute dauerte, wodurch
Informationen für die teureren SQLs und für unterschiedliche Ausführungen solcher
SQLs bereitgestellt werden.

Beispiel:Eine übliche Ereignisebene ist 12, die die standardmäßige SQL_TRACE-Ausgabe, Bindungen, Wartezeiten und
Standard-STAT-Zeilenverfolgung enthält.

Hinweise:
Das STAT-Dumping wurde in 11g dahingehend geändert, dass sie nicht über alle Ausführungen hinweg aggregiert, sondern nach der Ausführung ausgegeben werden. Dies wurde durchgeführt, um Fälle anzugehen, in denen der Cursor nicht geschlossen ist und die STAT-Informationen daher nicht ausgegeben werden.
Jetzt garantieren wir, dass die STAT-Informationen nach der Ausführung erfasst werden. Sehen Sie sich die obigen Bitebenen an, um eine feinere Kontrolle über die STAT-Leitungen zu haben.

Liest auch
v$active_session_history
Plan in Oracle
sql tuning Advisor

erklären