Kako mogu da vidim analizu rada jedne sessije - Trace Session ?

 

Kako mogu da vidim analizu rada jedne sessije - Trace Session ?. 1

Gde se nalaze korisničke trace datoteke ?. 1

Može li korisnik svoju sesiju da prati svoju sesiju?. 2

Prava za praćenje - trace sesija. 2

ANALIZA RADA AKTIVNE SESIJE. 2

AKTIVIRANJE ANALIZE RADA AKTIVNE SESIJE IZ DRUGE SESIJE. 3

KAKO ČITATI TRACE DATOTEKU.. 4

Napomene. 6

 

Gde se nalaze korisničke trace datoteke ?

 

U datotekama koje se nalaze u direktorijumu koji je definisan parametrom user_dump_dest nalaze se datoteke sa analizom sessija.

 

SQL> show parameter user_dump_dest

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

user_dump_dest                       string      D:\ORACLE\PRODUCT\10.2.0\ADMIN\ORCL\UDUMP

 

Datoteke sadrže parametre performansi kao sto su:

     Parse, execute and fetch counts,

     CPU and elapsed times,

     Physical reads and logical reads,

     Number of rows processed,

     Misses on the library cache itd.

 

Može li korisnik da prati svoju sesiju?

 

Probati postoji li infrastruktura za trace sesija npr.

SQL> show user

USER is "SCOTT"

SQL>    ALTER SESSION SET sql_trace = TRUE

  2  ;

        ALTER SESSION SET sql_trace = TRUE

*

ERROR at line 1:

ORA-01031: insufficient privileges

Ako je ovo greška koja se javlja treba dati korisniku odgovarajuća prava

 

Prava za praćenje - trace sesija

 

1.Kao administrator baze npr. kao korisnik system startovati grantovati sistemsku privilegiju alter session

SQL> grant alter session to scott;

 

 

ANALIZA RADA AKTIVNE SESIJE

 

Ulogovati se kao korisnik scott i poceti trace sessije

SQL> ALTER SESSION SET sql_trace = TRUE;

 

Sledi aktivnost koja se prati. Na kraju aktivnosti proces se zavrsava sledecom komandom:

 

SQL> ALTER SESSION SET sql_trace = FALSE;

 

 

Na sličan način kao SQL komandom analizu rada sesije je moguće aktivirati-deaktivirati korišćenjem paketa DBMS_SESSION (PL/SQL Oracle supplied package).

Ovaj način je prikladniji kada se analiza aktivira korišćenjem nekog npr. klijent alata.

 

 

SQL> execute DBMS_SESSION.SET_SQL_TRACE (TRUE);

 

SQL> execute DBMS_SESSION.SET_SQL_TRACE (FALSE);

 

 

AKTIVIRANJE ANALIZE RADA AKTIVNE SESIJE IZ DRUGE SESIJE

 

 

Na ovaj način administrator baze vrši analizu rada sesije uz aktiviranje-deaktiviranje iz svoje sesije korišćenjem paketa DBMS_SYSTEM (PL/SQL Oracle supplied package).

Startovati analizu aktivnih sesija npr. po korisničkom imenu iz neke druge sesije

 

SQL> select sid,serial#,terminal,username,program from v$session where username='SCOTT'

/

 

       SID    SERIAL# TERMINAL         USERNAME                       PROGRAM

---------- ---------- ---------------- ------------------------------ --------------------

       131      28278 INFO3            SCOTT                          TOAD.exe

       140      54452 ORA10GFS         SCOTT                          sqlplus.exe

 

Izvrsiti komandu exec SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION (SID, SERAIL#, TRUE); npr:

exec SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION (140, 54452, TRUE);

 

Sledi aktivnost koja se prati. Na kraju aktivnosti proces se zavrsava sledecom komandom:

 

exec SYS.DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION (140, 54452, FALSE);

 

 

KAKO ČITATI TRACE DATOTEKU

 

Da bi se trace ASCII datoteka prevela u razumljivi oblik korisi se program tkproff.

 

Sintaksa komande koja se izvršava sa operativnog sistema je:

tkprof inputfile outputfile sys=no explain=userid/password

 

inputfile je trace datoteka iz direktorijuma user_dump_dest

 

outputfile je datoteka sa informacijama prilagiđenim za krajnjeg korisnika

sys=no filtrira sve SQL komande korisnika SYS (recursive SQL statements)

explain=userid/password daje plan izvršenja SQL komandi konektujući se na bazu

 

Primer: tkprof test_ora_1712.trc test_ora_1712.txt sys=no explain=scott/tiger

 

Primer jedne izlazne datoteke nakon pbrade programom tkprof.

 

 

********************************************************************************

 

ALTER SESSION SET sql_trace = TRUE

 

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        0      0.00       0.00          0          0          0           0

Execute      1      0.00       0.00          0          0          0           0

Fetch        0      0.00       0.00          0          0          0           0

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total        1      0.00       0.00          0          0          0           0

 

Misses in library cache during parse: 0

Misses in library cache during execute: 1

Optimizer mode: ALL_ROWS

Parsing user id: 54  (SCOTT)

********************************************************************************

 

select * from emp1

 

 

call     count       cpu    elapsed       disk      query    current        rows

------- ------  -------- ---------- ---------- ---------- ----------  ----------

Parse        3      0.04       0.06          0          0          0           0

Execute      3      0.01       0.56          0          6          0           0

Fetch        6      0.00       0.30          0          0          0          42

------- ------  -------- ---------- ---------- ---------- ----------  ----------

total       12      0.06       0.92          0          6          0          42

 

Misses in library cache during parse: 1

Optimizer mode: ALL_ROWS

Parsing user id: 54  (SCOTT)

 

Rows     Row Source Operation

-------  ---------------------------------------------------

     14  PX COORDINATOR  (cr=2 pr=0 pw=0 time=220157 us)

      0   PX SEND QC (RANDOM) :TQ10000 (cr=0 pr=0 pw=0 time=0 us)

      0    PX BLOCK ITERATOR (cr=0 pr=0 pw=0 time=0 us)

      0     TABLE ACCESS FULL EMP1 (cr=0 pr=0 pw=0 time=0 us)

 

 

Rows     Execution Plan

-------  ---------------------------------------------------

      0  SELECT STATEMENT   MODE: ALL_ROWS

     14   PX COORDINATOR

      0    PX SEND (QC (RANDOM)) OF ':TQ10000' [:Q1000]

      0     PX BLOCK (ITERATOR) [:Q1000]

      0      TABLE ACCESS   MODE: ANALYZED (FULL) OF 'EMP1' (TABLE)

                 [:Q1000]

 

********************************************************************************

 

Napomene

 

- Da bi se dobilo vreme trajanja (elapsed time) i CPU vreme za SQL komande parametar TIMED_STATISTICS treba da ima vrednost TRUE

- MAX_DUMP_FILE_SIZE je parametar koji specificira maksimalnu veličinu trace datoteka izraraženu u K ili M.