Este script nos permite obtener los valores de una instancia de bind variables de una consulta a partir de un sql_id.
Queda en manos del lector modificar el script a su criterio para obtener las mismas bind variables filtrando por sesion, hash_value o lo que necesite en cada caso
select s.sid,
s.username,
s.sql_hash_value,
s.sql_id,
s.sql_child_number,
sbc.name,
sbc.value_string,
last_captured
from v$sql_bind_capture sbc, v$session s,v$sql sq
where s.sql_hash_value = sbc.hash_value
and s.sql_address = sbc.address
and sq.sql_id=s.sql_id
Muestra las sesiones que generan lock y las sesiones que esperan por que el lock se libere.
Con este script se puede identificar a que programa pertenece la sesion, a que usuario, por que evento espera, hace cuanto tiempo, etc.
Lista las sessiones con mayor consumo de cpu en un rac.
select
ss.inst_id,
ss.username,
se.sid,
ss.program,
value/100 cpu_usage_seconds
from
gv$session ss,
gv$sesstat se,
gv$statname sn
where se.statistic#=sn.statistic#
and name like '%CPU used by this session%'
and se.sid=ss.sid
Este script no solo muestra si hay locks, sino también quien tiene tomado el recurso que genera el lock, quienes esperan por la liberación de ese recurso.
Con estos datos se puede identificar el tipo de espera, la sesion , el comando que ejecuta, cuanto tiempo tiene tomado el Lock, etc.
set linesize 250
col sess format a20
col event format a40
col mata format a40
col osuser format a10
col username format a11
SELECT /*+ RULE */
a.sid,b.serial#,
Si alguno de los tablespaces temporales se encuentra en uso este script mostrará datos de la sesion que lo tiene el uso además del espacio que ocupa y el porcentaje respecto al total.
set pagesize 10000
set linesize 133
col tablespace format a15 heading 'Tablespace Name'
col "Mb OCUP" format 9999999999.99
col username format a15
col osuser format a15
col "% ocupado" format 99.99
select
b.tablespace,
Muestra espacio en MB ocupado por el SID indicado, el espacio total disponible del Temporary tablespace en uso y el porcentaje ocupado por el sid actual sobre el total de espacio en el tablespace.
set pagesize 10000
set linesize 133
col tablespace format a15 heading 'Tablespace Name'
col "Mb OCUP" format 9999999999.99
col username format a15
col osuser format a15
col "% ocupado" format 99.99
select
b.tablespace,
Con este Script podemos averiguar el SQL correspondiente a un HASH sin importar la longitud del sql.
Este script es útil cuando el SQL en cuestión tiene más de 1000 caracteres y no puede ser visto correctamente por la v$sql.sql_text
SET LINESIZE 500
SET PAGESIZE 1000
SELECT a.sql_text
FROM v$sqltext a
WHERE a.hash_value = &hash
ORDER BY a.piece;