miércoles, 18 de agosto de 2010

Script - Espia_sesion_valores

Para trazar una sesión con un nivel más elevado de traza, en el que podemos ver los valores de las variables utilizadas en la sentencia, así como todas las estadísticas de los eventos involucrados en su ejecución.

column serial new_value Serial

SELECT SUBSTR(TO_CHAR(V$SESSION.SERIAL#),1,6) serial
FROM
     V$SESSION,
     V$PROCESS
WHERE
    (V$SESSION.PADDR = V$PROCESS.ADDR) AND
    (V$SESSION.USERNAME IS NOT NULL) AND
    (V$SESSION.SERVER LIKE 'DEDIC%') AND
    SUBSTR(TO_CHAR(V$SESSION.SID),1,3) = &&1
ORDER BY V$PROCESS.SPID
/

execute sys.dbms_system.set_ev(&&1,&serial,10046,12,'');

PROMPT
PROMPT
PROMPT execute sys.dbms_system.set_ev(&&1,&serial,10046,0,'');
PROMPT
PROMPT

Aquí veremos la salida de la forma:

PARSING IN CURSOR #1 len=54 dep=0 uid=5 oct=3 lid=5 tim=3972374052 hv=2683306117 ad='866fac10'
select * from … where … =:"SYS_B_0"
END OF STMT
PARSE #1:c=2,e=9,p=3,cr=8,cu=0,mis=1,r=0,dep=0,og=0,tim=3972374052
BINDS #1:
 bind 0: dty=1 mxl=32(08) mal=00 scl=00 pre=00 oacflg=10 oacfl2=100 size=32 offset=0
   bfp=101f08358 bln=32 avl=08 flg=09
   value="52568588"
EXEC #1:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=4,tim=3972374053
WAIT #1: nam='SQL*Net message to client' ela= 0 p1=675562835 p2=1 p3=0
WAIT #1: nam='SQL*Net more data to client' ela= 0 p1=675562835 p2=2009 p3=0
WAIT #1: nam='file open' ela= 0 p1=0 p2=0 p3=0
WAIT #1: nam='db file sequential read' ela= 0 p1=52 p2=6597 p3=1
FETCH #1:c=1,e=0,p=1,cr=2,cu=0,mis=0,r=0,dep=0,og=4,tim=3972374053
WAIT #1: nam='SQL*Net message from client' ela= 805 p1=675562835 p2=1 p3=0

Donde el valor resaltado es el valor que hemos puesto en la parte del where:

Select * from ... where ...=’52568588’

No hay comentarios:

Publicar un comentario