sql >> Base de Datos >  >> RDS >> Oracle

Use gv$session para saber si una consulta está bloqueada

En gv$session , el event le dice qué evento de espera está esperando actualmente su sesión. Si su sesión está esperando algún tipo de bloqueo realizado por otra sesión, el event le dirá eso (por ejemplo, será "enq:TX - contención de bloqueo de fila" si está en cola esperando para bloquear una fila en poder de otra sesión) y blocking_instance y blocking_session se completará con la instancia y el ID de sesión del titular del bloqueo. También puede consultar seconds_in_wait (si wait_time=0 ) para determinar cuántos segundos ha pasado la sesión en el evento de espera actual. Eso al menos debería decirle si su sesión está "atascada" actualmente, pero no le dice si su consulta realmente terminará alguna vez; si hay un mal plan, es muy posible que tenga "bueno". eventos de espera como esperas de E/S de disco que indican que la sesión está haciendo algo pero que la consulta nunca terminará realmente.