Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

deadlock victim

Estas en el tema de deadlock victim en el foro de SQL Server en Foros del Web. hola tengo una aplicación y el control de errores mes está enviando este error -2147467259 [Microsoft][ODBC SQL Server Driver][SQL Server]Transaction (Process ID 66) was deadlocked ...
  #1 (permalink)  
Antiguo 22/01/2009, 11:44
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
deadlock victim

hola
tengo una aplicación y el control de errores mes está enviando este error
-2147467259
[Microsoft][ODBC SQL Server Driver][SQL Server]Transaction (Process ID 66) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

Lo que me preocupa es que la operación es en un delete de un registro que no existe.

He parado el backup, que no se que se esta haciendo alguna copia, pero nada alguien sabe pq puede ser he mirado de hacer
DBCC OPENTRAN pero siempre me dice que nada.

Ya me paso este verano, pero tal como paso se soluciono.

si alguien sabe que puede ser

gracias
  #2 (permalink)  
Antiguo 22/01/2009, 13:53
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: deadlock victim

Tu proceso esta solicitando recursos que otro proceso tiene y este a su vez los que tu proceso tiene.

Y tu proceso fue elegido para ser eliminado.

Seria bueno que se revizara las operaciones de actualizacion, insercion y eliminacion de tablas, para que se hagan solo en caso de ser necesario y que el proceso no acapare o solicite recursos que no va a utilizar.

Por ejemplo, antes de eliminar, verificar que existe el registro que se desea eliminar...

y asi por el estilo..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 22/01/2009, 13:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: deadlock victim

exactamente que estas ejecutando?
no deberias tener problemas de deadlock, a menos de que estes usando locks explicitos.
  #4 (permalink)  
Antiguo 22/01/2009, 15:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: deadlock victim

tute666

Un simple SELECT genera LOCK's, al obtener un deadlock, comunmente, es por errores en la programacion.
  #5 (permalink)  
Antiguo 23/01/2009, 02:44
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: deadlock victim

Creo que no os entiendo muy bien,

Según tengo entendido, un deadlook se genera cuando intento modificar un registro que esta bloqueado por otro usuario.

Pero que puede bloquear un registro que no existe?
  #6 (permalink)  
Antiguo 23/01/2009, 06:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: deadlock victim

Cita:
Iniciado por iislas Ver Mensaje
tute666

Un simple SELECT genera LOCK's, al obtener un deadlock, comunmente, es por errores en la programacion.
esos son conflictos que deberia manejar el engine de DB.
tengo sitios con cientos de consultas por minutos que _JAMAS_ tuve un problema similar.
los locks que utiliza el servidor en su andar normal, no deberian generar deadlocks.
  #7 (permalink)  
Antiguo 23/01/2009, 09:35
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: deadlock victim

Revisa este link:

Como lidiar con DeadLocks

Lo que yo tambien hacia es colocar:

SELECT *
FROM TU_TABLA WITH (NOLOCK)

Saludos
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD

Última edición por Thumper; 23/01/2009 a las 09:41
  #8 (permalink)  
Antiguo 23/01/2009, 15:37
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: deadlock victim

tute666

Un deadlock, comunmente, es un error en programacion.

Thumper

Utilizar NOLOCK en los SELECT, te puede generar lecturas de datos no validos.
  #9 (permalink)  
Antiguo 26/01/2009, 05:37
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: deadlock victim

Cita:
Iniciado por iislas Ver Mensaje
tute666

Un deadlock, comunmente, es un error en programacion.

Thumper

Utilizar NOLOCK en los SELECT, te puede generar lecturas de datos no validos.
100% de acuerdo en los 2 comentarios.

Para los que quieran hacer lecturas consistentes sin tener que esperar por un lock en una tabla que esta siendo actualizada, pueden ver la implementación de versioning de filas a partir de Sql Server 2005.

Un post que me gustó http://blog.sublogic.com/2006/02/ora...in-sql-server/

Y para buscar en google o msdn

ALTER DATABASE <database>
SET READ_COMMITTED_SNAPSHOT ON

Saludos
  #10 (permalink)  
Antiguo 26/01/2009, 12:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: deadlock victim

Gracias por la informacion. Saludos
  #11 (permalink)  
Antiguo 27/01/2009, 09:04
 
Fecha de Ingreso: octubre-2006
Mensajes: 68
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: deadlock victim

Hola

Estoy optimizando las diferentes consultas que hay a la base de datos, y asegurándome que entre página y página todas las conexiones queden bien cerradas, pero es una aplicación grande y esto supone un tiempo.

Pero de pronto antes de pasar la nueva versión a producción el problema se ha resuelto y nada ha cambiado, ni siquiera el número de usuarios que es muy parecido.

Puede ser algo del SQL? o de la comunicación entre el IIS y el SQL, la verdad es que el repason que le estoy dando a la programación no le ira mal, pero no acabo de entender que pasa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:42.