Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Ślad SQL, zdarzenie 10046 w Oracle:trcsess, narzędzie tkprof

Śledzenie jest ważną częścią dostrajania bazy danych Oracle. Pomoże to w uchwyceniu wszystkich stwierdzeń problemu , zdarzeń oczekiwania, które są odpowiedzialne za wolne działanie sesji.
Baza danych Oracle zapewnia wiele najszybszych sposobów śledzenia sesji lokalnej, sesji innych użytkowników i formatowania śladu, aby był czytelny

Przyjrzyjmy się, jak włączyć śledzenie SQL, zdarzenie 10046 w bazie danych Oracle i trcsess, narzędzie tkprof

Spis treści

Śledzenie SQL, zdarzenie 100046

Jeśli chcesz śledzić w sesji lokalnej, oto kroki, aby włączyć śledzenie SQL

Normalny ślad zmienić zestaw sesji sql_trace =true; -- Aby umieścić śledzenie naalterzestaw sesji sql_trace =false; -- Aby wyłączyć śledzeniePełny poziom ze zdarzeniem oczekiwania i powiązać ślad alter session set events =„10046 trace name context forever, poziom 12”;Aby wyłączyć śledzenie zdarzeń zestawu sesji =„10046 trace name context off”;To samo, co normalne śledzenie exec DBMS_SESSION.set_sql_trace(sql_trace => PRAWDA);exec DBMS_SESSION.set_sql_trace(sql_trace => FAŁSZ);

Jeśli chcesz śledzić w innej uruchomionej sesji, oto kroki

Normalny ślad wykonaj dbms_system.set_sql_trace_in_session ('sid','serial',true); -- Aby umieścić śledzenie onexecute dbms_system.set_sql_trace_in_session ('sid','serial',true); -- Aby wyłączyć śledzeniePełny poziom ze zdarzeniem oczekiwania i powiązać śledzenie wykonaj dbms_system.set_ev(‘sid’,’serial’,10046,12,’’);Aby odłożyć ślad wykonaj dbms_system.set_ev('sid','serial',10046,0,'');

Musiałeś widzieć użycie 12,0 w ​​różnych powyższych wypowiedziach.Są to poziomy śledzenia.Oracle Tracing ma poziomy śledzenia .Oto prawidłowe wartości

0 Brak śladu. Jak wyłączenie sql_trace.
2 Odpowiednik zwykłego sql_trace
Zapewnia ścieżkę wykonania, liczbę wierszy, najmniejszy plik płaski
Zalety
Zapewnia ścieżkę wykonania
Zapewnia liczbę wierszy
Tworzy najmniejszy płaski plik
Wady
Nie można stwierdzić, jakie wartości zostały dostarczone do SQL w czasie wykonywania
Jeśli statystyki dla zapytania są niskie, ale czas działania jest długi, nie można powiedzieć, jakie zdarzenia spowodowały długie oczekiwanie
4 Tak samo jak 2, ale z dodatkiem wartości zmiennych wiążących
Zalety
Zapewnia ścieżkę wykonania
Zapewnia liczbę wierszy
Może powiedzieć, dla jakich wartości została uruchomiona instrukcja
Wady
Ponownie, jeśli czas działania jest długi, a statystyki są niskie, trudno będzie powiedzieć, dlaczego w tego typu śledzeniu.
Tworzy większy plik płaski niż zwykły ślad, ponieważ informacje o zmiennych wiążących muszą być przechowywane.
8 To samo co 2, ale z dodatkiem zdarzeń oczekiwania
Zwykłe śledzenie oraz czasy operacji bazy danych, na które czekał SQL w celu zakończenia. Na przykład:czasy dostępu do dysku.
Zalety
Zapewnia ścieżkę wykonania
Zapewnia liczbę wierszy
Potrafi określić czas dla wszystkich zdarzeń związanych z SQL.
Wady
Plik śledzenia może łatwo się wyczerpać z powodu wszystkich informacji, które Oracle musi zapisać w pliku śledzenia, a wtedy tylko częściowe informacje są dostępne w pliku śledzenia.
Informacje o zmiennej wiążącej nie są dostępne
12 To samo co 2, ale z wartościami zmiennych wiążących i zdarzeniami oczekiwania
Zwykłe śledzenie z informacjami dotyczącymi zarówno oczekiwania, jak i wiązania. Zawiera najbardziej kompletne informacje i generuje największy plik śledzenia.
Zapewnia ścieżkę wykonania
Zapewnia liczbę wierszy
Potrafi określić czasy wszystkich zdarzeń związanych z SQL.
Potrafi określić, jakie wartości SQL został uruchomiony z
Zaletami
Zapewnia ścieżkę wykonania
Zapewnia liczbę wierszy
Potrafi określić czasy wszystkich zdarzeń powiązanych z SQL.
Potrafi określić, z jakimi wartościami został uruchomiony SQL
Wady
Plik śledzenia może łatwo przekroczyć limit ze względu na wszystkie informacje, które Oracle musi zapisać do pliku śledzenia, a wtedy tylko częściowe informacje są dostępne w pliku śledzenia.

Istnieją również inne sposoby śledzenia. Oto niektóre z nich
(1) ORADEBUG
Wymaga logowania jako sysdba

oradebug setospid   1111   — Sesja debugowania z określonym procesem Oracle idoradebug setorapid  1111  --- Sesja debugowania z określonym zdarzeniem Process Processoradebug 10046 śledzenie kontekstu nazwy na zawsze, poziom 4; zdarzenie oradebug 10046 śledzenie nazwy kontekstu wyłączone; --- Powoduje to wyłączenie traceoradebug close_trace  --- To zamyka plik śledzenia Oradebug TRACEFILE_NAME;

(2) W Oracle 10g opcje śledzenia SQL zostały rozszerzone za pomocą pakietu DBMS_MONITOR

WYKONAJ dbms_monitor.session_trace_enableKtóry jest podobny ALTER ZESTAW SESJI WYDARZENIA '10046 trace name context na zawsze, poziom 2';WYKONAJ dbms_monitor.session_trace_enable (binds=>true);który jest podobny ALTER SESSION SET EVENTS '10046 trace name contekst na zawsze, poziom 2';;WYKONAJ dbms_monitor.session_trace_enable (czeka=>true);Który jest podobny ZMIEŃ ZESTAW SESJI ZDARZENIA '10046 kontekst nazwy śladu na zawsze, poziom 8';WYKONAJ dbms_monitor.session_trace_enable('sid','serial#')Który system jest podobny 'sid','serial',10046,2,'');WYKONAJ dbms_monitor.session_trace_enable ('sid','serial#',binds=>true);Co jest podobnewykonaj dbms_system.set_ev('sid','serial' ,10046,4,'');WYKONAJ dbms_monitor.session_trace_enable ('sid','serial#',waits=>true);Co jest podobne.execute dbms_system.set_ev('sid','serial',10046,8,'' );

Istnieje wiele innych funkcji dostępnych w dbms_monitor. Możemy włączyć śledzenie na podstawie identyfikatora klienta i na wiele sposobów

Jak zidentyfikować pliki śledzenia

Możemy zidentyfikować pliki śledzenia, korzystając z identyfikatora sesji. Ponadto plik śledzenia będzie zawierał parę sid,serial#  na początku pliku śledzenia.
Poniższe zapytanie może posłużyć do znalezienia lokalnego pliku śledzenia sesji

wybierz wartość c || '/' || 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'/

Istnieje inny łatwy sposób na zidentyfikowanie pliku śledzenia, który nazywa się identyfikator śledzenia

zmień zestaw sesji tracefile_identifer='ORAC'; To jest identyfikator

Przykładowy plik śledzenia

Plik śledzenia /app/oracle/TEST/diag/rdbms/test/TEST/trace/TEST_ora_13025_IDEN.trcOracle Database 11g Enterprise Edition wydanie 11.2.0.4.0 — produkcja 64-bitowa Z partycjonowaniem, klastrami Real Application, OLAP, Data Mining i Opcje testowania rzeczywistych aplikacji ORACLE_HOME =/app/oracle/TEST/11.2.0/dbNazwa systemu:    SunOS12Nazwa węzła:sun12Release:   5.10Wersja:   Generic_144488-11Machine:   sun4uInstance name:TESTRedo wątek zamontowany przez tę instancję:1 Numer procesu Oracle:20225x , obraz:[email protected] SunOS12*** 2013-10-21 12:28:56.461*** SESJA ID:(3875.17341) 2013-10-21 12:28:56.461*** KLIENT ID:() 2013 -10-21 12:28:56.461*** NAZWA SERWISU:(TEST) 2013-10-21 12:28:56.461*** NAZWA MODUŁU:(przykł[email protected](TNS V1-V3)) 2013-10 -21 12:28:56.461*** NAZWA AKCJI:() 21.10.2013 12:28:56.461ZAMKNIJ #4:c=0,e=11,dep=1,type=1,tim=8866891135825=====================PARSOWANIE W KURSORZE #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="ID_GRUPY_BIZNESOWEJ"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=8866891138429ZAMKNIJ #5:c=0,e=5,dep=1,type=3,tim=8866891138503=====================PARSOWANIE W KURSORZE #4 dł=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 NIE JEST ZEROWE. 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) mx 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) =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 ) 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==============PARSOWANIE W KURSORZE #5 dł. =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_ID2 AND PROFILE_ID_ID_ AND_:3:B LEVEL_VALUE =:B1 I PROFILE_OPTION_VALUE NIE JEST NULLEND OF STTMBINDS #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 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=001206001 frm =00 siz=0 off=48kxsbbbfp=ffffffff7d673ba8  bln=22  avl=04  flg=01value=10001

jak sprawdzić, czy śledzenie jest włączone w Oracle

Jeśli włączyłeś śledzenie za pomocą pakietu DBMS_MONITOR, możemy sprawdzić, czy śledzenie jest włączone za pomocą poniższego zapytania

ustaw moduł wierszy 180col dla a45col sql_trace_waits dla a20col sql_trace_binds dla a20col sql_trace dla a20select username,module,sid,sql_trace,sql_trace_waits,sql_trace_binds z v$sesji, gdzie sql_trace=
 Jeśli jest włączony za pomocą innych metod, jedynym sposobem sprawdzenia jest sprawdzenie lokalizacji śledzenia i znalezienie najnowszych plików śledzenia, a następnie znalezienie w nich identyfikatora sid i serial#, a następnie wykonanie zapytania v$session, aby znaleźć sesję i możesz wyłączyć śledzenie, jeśli chcesz

Narzędzie Oracle tkprof

Pliki śledzenia uzyskane z powyższej metody są w surowej postaci, które można przekonwertować do bardziej czytelnego formatu za pomocą narzędzia tkprof (narzędzie Transient Kernel PROFIle)

tkprofUsage:tkprof tracefile plik wyjściowy [explain=] [table=][print=] [insert=] [sys=] [sort=]table=schema.tablename   Użyj „schema.tablename” z opcją „explain=”. explain=użytkownik/hasło    Połącz się z ORACLE i wydaj EXPLAIN PLAN.print=integer    Lista tylko pierwszych „całkowitych” instrukcji SQL.aggregate=yes|noinsert=filename  Lista instrukcji SQL i danych zawartych w instrukcjach INSERT.sys=no           TKPROF nie wyświetla SQL instrukcje uruchamiane jako użytkownik SYS.record=filename  Zapisuj nierekurencyjne instrukcje znalezione w śledzeniu file.waits=yes|no     Podsumowanie rekordów dla wszystkich zdarzeń oczekiwania znalezionych w śledzeniu file.sort=option      Ustaw zero lub więcej z następujących opcji sortowania :prscnt liczba razy parsowanie zostało wywołane prscpu czas procesora parsingprsela upłynął czas parsowania prsdsk liczba odczytów dysku podczas parsowania prsqry liczba buforów do spójnego odczytu podczas parseprscu liczba buforów do bieżącego odczytu podczas parseprsmis pamięć podręczna podczas analizowania liczba błędów w bibliotece ecute zostało nazwane execpu czas procesora spędzony na wykonywaniu exeela czas, jaki upłynął podczas wykonywania exedsk liczba odczytów dysku podczas wykonywania exeqry liczba buforów do spójnego odczytu podczas wykonywaniaexecu liczba buforów do bieżącego odczytu podczas wykonywaniaexerow liczba wierszy przetworzonych podczas wykonywaniaexemis liczba chybień w pamięci podręcznej biblioteki podczas wykonywaniafchcnt liczba razy wywoływano pobieranie fchcpu procesor czas spędzony na pobieraniu fchela czas, jaki upłynął, pobieranie fchdsk liczba odczytów dysku podczas pobierania fchfchqry liczba buforów do spójnego odczytu podczas pobierania 

Kilka przykładów

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=identyfikator użytkownika/hasło sort=prsela,exeela,fchelaTen wydruk tylko 10 sql tkprof .trc elaps.prf sys=no explain=apps/ sort=(prsela,exeela,fchela) print=10To drukuje wszystkie sql tkprof .trc elaps.prf sys=no explain=apps/apps sort=prsela,exeela,fchela

Przykładowa zawartość pliku tkprof

TKPROF:Wersja 11.2.0.4.0 - Produkcja we wtorek 17 stycznia 14:12:41 2013Copyright (c) 1982, 2007, Oracle. Wszelkie prawa zastrzeżone.Plik śledzenia:TEST_ora_15941.trcOpcje sortowania:execpu fchcpu**************************************** ********************************************liczba    =liczba OCI procedura została wykonanaCPU      =czas procesora w sekundach executingelapsed  =czas trwania w sekundach executingdisk     =liczba fizycznych odczytów buforów z zapytania dysku    =liczba buforów uzyskanych dla spójnego odczytucurrent =liczba buforów uzyskanych w bieżącym trybie (zwykle dla aktualizacji)wiersze     =liczba wierszy przetwarzane przez wywołanie pobrania lub wykonania******************************************* ************************************* Identyfikator SQL: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      zapytanie     bieżące     - -  wiersze -------- ---- ---------- ---------- ---------- ---------- ----------Przetwarzaj        1      0.00    0.00          0          0          0           0Wykonaj 1       0.00     0.00          0          0           0           0Pobierz       2       0.00       0.00     -----           0           0           0           0          0 --- ---------- ---------- ---------- ----------  ------- ---total           4      0.00       0.00          0           4          0           1Brak w pamięci podręcznej biblioteki podczas analizowania:0Tryb optymalizatora:ALL_ROWSParsing user id:173  (APPS)Liczba przechwyconych statystyk planu:1Wiersze (1.) Wiersze (średnio) Wiersze (-maks.) Wiersze źródłowe --------- ---------- ----------  ---------- ------------------------------1          1          1  SORTUJ WEDŁUG (cr=4 pr=0 pw=0 time=0 nas cost=6 size=41 card=1)1          1          1   LICZNIK STOPKEY (cr=4 pr=0 pw=0 time=0 us)1          1          1    DOSTĘP DO TABELI WEDŁUG INDEKSU ROWID FND_USER_DESKTOP_OBJECTS (cr=4 pr=0 pw=0 raz =0 koszt nas=5 rozmiar=41 karta=1)1          1          1     ZAKRES INDEKSÓW S CAN FND_USER_DESKTOP_OBJECTS_N1 (cr=3 pr=0 pw=0 czas=0 koszt w usa=3 rozmiar=0 karta=3)(identyfikator obiektu 33596)Wiersze     Plan wykonania -------- --------- -------------------------------0  WYBIERZ INSTRUKCJĘ   TRYB:WSZYSTKIE_WIERSZE1   SORTUJ ( ORDER BY)1    LICZBA (STOPKEY)1     TRYB DOSTĘPU DO TABELI   TRYB:ANALIZOWANY (WEDŁUG INDEKSU ROWID) OF'FND_USER_DESKTOP_OBJECTS' (TABLE)1      INDEX   TRYB:ANALIZOWANY (SKANOWANIE ZAKRESU) OF'FND_USER_DESKTOP_OBJECTS' razy:oczekiwanie na zdarzenia INDEX_N1 Wydarzenie czekało                               Czasy   Max. Oczekiwanie Oczekiwane łącznie ---------------------------------------- O Oczekiwane ------ ----  ------------Wiadomość SQL*Net do klienta                   5        0.00          0.00SQL*Wiadomość od klienta                  5        0.00          0.00**************** ************************************************** ************** Identyfikator SQL:276ut2ywquxPlan Hash:3856112528select object_name, icon_namefromfnd_desktop_objectscall     count      cpu    elapsed      disk      zapytanie    bieżące       wiersze ------- ------  ------ -- ---------- ---------- ---------- ----------  -------- --Parse     1       0,00        0.00 0 0 0 0 0 0 0        0Wykonaj 1       0.00    0.00          0          0           0           0Pobierz     3      0.00        0,00           0         ------ ----------- 6 --          0        0           0 ----- ---------- ---------- ----------  ----------ogółem       5      0.00       0.00          0 6          0          47Błędy w pamięci podręcznej biblioteki d uring parse:0Tryb optymalizatora:ALL_ROWSParsing identyfikator użytkownika:173 (APPS)Liczba przechwyconych statystyk planu:1Wiersze (1.) Wiersze (średnia) Wiersze (maks.) Operacja źródła wiersza---------- ----- ----- ----------  -------------------------------------------------- ----------------47         47         47  TABLE ACCESS PEŁNY FND_DESKTOP_OBJECTS (cr=6 pr=0 pw=0 time=0 us cost=2 size=1175 card=47)Wiersze     Plan realizacji -------  -------------------------------------------- --------0  WYBIERZ INSTRUKCJĘ   TRYB:ALL_ROWS47   DOSTĘP DO TABEL   TRYB:ANALIZA (PEŁNA) 'FND_DESKTOP_OBJECTS' (TABELA)

Oracle trcsess użyteczność

Podczas korzystania z sesji współużytkowanego serwera zaangażowanych jest wiele procesów. Ślad dotyczący sesji użytkownika jest rozproszony w różnych plikach śledzenia należących do różnych procesów. Utrudnia to uzyskanie pełnego obrazu cyklu życia sesji.
Narzędzie trcsess konsoliduje dane wyjściowe śledzenia z wybranych plików śledzenia w oparciu o kilka kryteriów

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 

Po wygenerowaniu skonsolidowanego pliku śledzenia możesz uruchomić na nim tkprof.

Więcej informacji

W wersji 11g i nowszych sql_trace jest również zdarzeniem i można je ustawić za pomocą składni zdarzenia:

SQL> oradebug nazwa zdarzenia doc sql_tracesql_trace:zdarzenie dla sql traceUsage -------sql_tracewait ,wiąż ,plan_stat ,poziom 

Możesz więc użyć go w następujący sposób, aby włączyć SQL_TRACE żądanie informacji o wiązaniu:

zmień zdarzenia zestawu sesji „sql_trace bind=true”;

lub powiąż i czekaj informacje (uwaga oddzielona przecinkami):

zmień zdarzenia zestawu sesji „sql_trace bind=true, wait=true”;

Dalsze śledzenie może być ograniczone do zestawu identyfikatorów SQL_ID, jeśli uwzględnisz dla niego filtr. Np.

zmień zdarzenia zestawu sesji 'sql_trace [sql:sql_id=g3yc1js3g2689 | sql_id=7ujay4u33g337]bind=prawda, czekaj=prawda';

10046 poziomów EVENT:(nowe wartości sql_trace są zawarte w [..])
Są to wartości bitowe, które można łączyć, aby uzyskać różne miksy
1 – Włącz standardową funkcjonalność SQL_TRACE (domyślnie)
4 – Jako wartości wiązania śledzenia poziomu 1 PLUS [ bind=true ]
8 – Ponieważ śledzenie poziomu 1 PLUS czeka [wait=true]
Jest to szczególnie przydatne do wykrywania czekania na zatrzask itp.
ale może być również używane do wykrywania pełnych skanów tabel i skanów indeksu.

Od 11g dostępne są te dodatkowe poziomy bitowe:
16 – Generuj zrzuty wierszy STAT dla każdego wykonania [ plan_stat=all_executions ]
32 – Nigdy nie zrzucaj statystyk wykonania [ plan_stat=nigdy ]

Od 11.2.0.2 dostępny jest ten dodatkowy poziom bitów:
64 – Adaptacyjny zrzut linii STAT. [ plan_stat=adaptive ]
Zrzuca informacje STAT, jeśli wykonanie kodu SQL trwało dłużej niż około 1 minutę,
w ten sposób,
dając informacje o droższych kodach SQL i różnych wykonaniach takich
SQL.

Np.:Typowy poziom zdarzenia to 12, który obejmuje standardowe wyjście SQL_TRACE, powiązania, oczekiwania i
domyślne śledzenie linii STAT.

Uwagi:
Dumping STAT został poprawiony w 11g tak, że nie są one agregowane we wszystkich egzekucjach, ale są zrzucane po wykonaniu. Zostało to zrobione w celu rozwiązania przypadków, w których kursor nie jest zamknięty i dlatego informacje STAT nie są zrzucane.
Teraz gwarantujemy przechwycenie informacji STAT po wykonaniu. Zobacz powyższe poziomy bitów, aby mieć dokładniejszą kontrolę nad liniami STAT.

Też czyta
v$active_session_history
wyjaśnij plan w Oracle
doradcy dostrajania sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zainstaluj klienta Oracle Instant w kontenerze Docker dla Pythona cx_Oracle

  2. Dlaczego nazwy tabel/kolumn/indeksów Oracle są ograniczone do 30 znaków?

  3. Jak zadeklarować wyjątek zdefiniowany przez użytkownika przy użyciu zmiennej wyjątku w bazie danych Oracle

  4. Lista parametrów NLS w bazie danych Oracle

  5. Jak wykonać kopię zapasową maszyn wirtualnych RAC