Tenemos una base de datos Oracle, y la tabla de la cuenta del cliente tiene aproximadamente un millón de filas. A lo largo de los años, hemos construido cuatro IU diferentes (dos en Oracle Forms, dos en .Net), todas las cuales permanecen en uso. Tenemos una serie de tareas en segundo plano (tanto persistentes como programadas) también.Cómo encontrar filas bloqueadas en Oracle
Algo ocasionalmente mantiene un bloqueo prolongado (por ejemplo, más de 30 segundos) en una fila en la tabla de cuentas, lo que hace que falle una de las tareas de fondo persistentes. La tarea en segundo plano en cuestión se reinicia una vez que la actualización expira. Nos enteramos unos minutos después de que sucede, pero para entonces la cerradura ya salió.
Tenemos motivos para creer que podría ser una IU que funciona mal, pero no hemos podido encontrar una "pistola humeante".
He encontrado algunas consultas que enumeran bloques, pero eso es para cuando tienes dos trabajos compitiendo por una fila. Quiero saber qué filas tienen bloqueos cuando no necesariamente hay un segundo trabajo tratando de obtener un bloqueo.
Estamos en 11g, pero hemos tenido el problema desde 8i.
no puede utiliza V $ LOCK para obtener todas las cerraduras? Incluso si no puede determinar las filas específicas que se están bloqueando, al menos usted sabe qué tablas. –