Kako
mogu da vidim analizu rada jedne sessije - Trace Session ?
Gde
se nalaze korisničke trace
datoteke ?
Može
li korisnik svoju sesiju da prati svoju sesiju?
Prava
za praćenje - trace
sesija
AKTIVIRANJE
ANALIZE RADA AKTIVNE SESIJE IZ DRUGE SESIJE
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.
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
1.Kao administrator baze
npr. kao
korisnik system startovati grantovati sistemsku privilegiju alter session
SQL> grant alter
session to scott;
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);
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);
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]
********************************************************************************
- 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.