Si tienen problemas con que el Oracle en su server windows está consumiendo mucha CPU + del 50% podemos utilizar una herramienta llamada qslice de microsoft para ver los hilos de ejecucion del ejecutable oracle.exe, algo que en linux no hace falta por que cada hilo viene por separado.
Aqui las instrucciones:
Como he comentado antes existe una herramienta que se llama qslice y viene incluida en el resource kit de Windows 2000 pero es compatible con todos los S.O. Se puede descargar desde aquí: http://www.microsoft.com/download/en/details.aspx?id=8414
Luego para utilizarla debemos seguir las instrucciones de
esta página http://it.toolbox.com/blogs/david/how-to-identify-cpu-hogging-oracle-sessions-on-a-windows-server-21789
que en resumen nos dice que debemos abrir el qslice desde la carpeta archivos
de programa… \resource… \qslice y una vez que tengamos abierto el programa,
hacemos doble clic en el ejecutable oracle.exe y nos aparecerán los procesos
internos de dicho ejecutable:
Lo que tenemos que hacer con esto es la primer columna que
pone TID coger por ejemplo el valor b8c y pasarlo a decimal con la calculadora
de Windows que nos da el 2956 luego con ese dato y las consultas que adjunta la
página anterior sacaremos el proceso o SID que está causando el consumo de
memoria en este caso:
select proc.spid ThreadNO,
sess.username Username, sess.osuser OSUser,
sess.status Status,
sess.sid SessionID,
sess.program Program
from v$process proc, v$session sess, v$bgprocess bg
where sess.paddr = proc.addr
and bg.paddr(+) = proc.addr
and proc.spid in (2956); << aqui va el valor en decimal.
Tambien tenemos otra query:
select sqlarea.sql_text
from v$process proc,v$session sess,
v$sqlarea sqlarea
where proc.addr = sess.paddr
and sess.sql_hash_value = sqlarea.hash_value
and proc.spid in (2956); << aqui va el valor en decimal.
Espero que les resulte util.
Saludos.
0 comentarios:
Publicar un comentario