Tabla de contenido:

¿Qué causa los interbloqueos de la base de datos?
¿Qué causa los interbloqueos de la base de datos?

Video: ¿Qué causa los interbloqueos de la base de datos?

Video: ¿Qué causa los interbloqueos de la base de datos?
Video: Ejemplo Deadlock-Interbloqueo SQL Server 2024, Noviembre
Anonim

A punto muerto ocurre cuando dos (o más) transacciones se bloquean entre sí al mantener bloqueados los recursos que cada una de las transacciones también necesita. Por ejemplo: la Transacción 1 tiene un candado en la Tabla A. La mayoría de la gente escribirá que interbloqueos no se puede evitar en un multiusuario base de datos.

Por lo tanto, ¿qué son los puntos muertos en la base de datos?

Interbloqueos . en un base de datos , a punto muerto es una situación en la que dos o más transacciones están esperando que la otra abandone los bloqueos. Por ejemplo, la Transacción A puede mantener un bloqueo en algunas filas de la tabla Cuentas y necesita actualizar algunas filas en la tabla Pedidos para finalizar.

También sepa, ¿puede una selección causar un interbloqueo? 2 respuestas. Punto muerto ocurre cuando una consulta adquiere un bloqueo en un objeto (filas, páginas de datos, extensión, tablas, etc.) y otro recurso intenta acceder a él. La unidad más pequeña en SQL Server son las páginas de datos y SQL mantiene un candado en la página mientras trabaja en ella. Entonces, sí, es posible que dos Seleccione declaración pueden crear punto muerto.

Además, ¿cómo podemos evitar un punto muerto en la base de datos?

Consejos para evitar interbloqueos

  1. Asegúrese de que el diseño de la base de datos esté correctamente normalizado.
  2. Desarrolle aplicaciones para acceder a los objetos del servidor en el mismo orden cada vez.
  3. No permita ninguna entrada de usuario durante las transacciones.
  4. Evite los cursores.
  5. Mantenga las transacciones lo más breves posible.

¿Cómo se arregla un punto muerto?

Un desarrollador inteligente debe seguir los siguientes pasos para recuperarse de un punto muerto:

  1. Verifique el número de error 1205, cuando se lanza una excepción.
  2. Detenga la aplicación brevemente para darle tiempo a la otra consulta para completar su transacción y liberar sus bloqueos adquiridos.
  3. Vuelva a enviar la consulta, que SQL Server revirtió.

Recomendado: