Estoy probando mi aplicación. Necesito un código estable que simule el punto muerto en el sitio de la base de datos (script SQL si es posible).
Gracias.
ADICIONAL:
sql-server
deadlock
Garik
fuente
fuente
Respuestas:
La mejor manera sería usar tablas que ya tienes. Cree dos tablas: tabla-a, tabla-b Para una prueba, incluso puede actualizar la misma columna con la misma información para no afectar ningún dato real.
Por ejemplo, UPDATE table_a set ID = ID donde ID = 100;
Abra dos sesiones en la misma base de datos. En uno, corre
En dos carreras
Luego, copie las declaraciones de actualización en las sesiones opuestas y ejecútelas al mismo tiempo. En uno,
En dos
Acabo de probar esto ahora y obtuve MS-SQL
fuente
Use el
sp_getapplock
procedimiento almacenado del sistema para tomar los bloqueos que necesite en su código de muestra.Estrictamente hablando, este es un semáforo de Dijkstra . Aunque sigue siendo muy útil
fuente
sp_getapplock
No arrojará un error. Esperará a que caduque el tiempo de espera o (si no hay tiempo de espera), regresará-3
( msdn.microsoft.com/en-us/library/ms189823.aspx )Aquí hay otro método similar al publicado anteriormente ->
Script para ser usado en la Ventana de Consulta # 1
Script para ser usado en la Ventana de Consulta # 2
Script que se agregará a la Ventana de consulta # 1
Para obtener detalles adicionales sobre esto, consulte http://ajitananthram.wordpress.com/2014/02/23/scripts-to-force-a-deadlock-in-sql-server/
fuente