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

Interbloqueos

Estas en el tema de Interbloqueos en el foro de SQL Server en Foros del Web. Buenas Tengo un problemon... En una aplicación en la cual se conectan unos 20 usuarios a una BD audito muchos errores de Deadlock System.Data.SqlClient.SqlException (0x80131904): ...
  #1 (permalink)  
Antiguo 13/08/2014, 00:51
Avatar de jshdev  
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Interbloqueos

Buenas

Tengo un problemon... En una aplicación en la cual se conectan unos 20 usuarios a una BD audito muchos errores de Deadlock

System.Data.SqlClient.SqlException (0x80131904): La transacción (id. de proceso 71) quedó en interbloqueo en bloqueo recursos con otro proceso y fue elegida como sujeto del interbloqueo. Ejecute de nuevo la transacción.
en System.Data.SqlClient.SqlConnection.OnError(SqlExc eption exception, Boolean breakConnection, Action`1 wrapCloseInAction)

He observado que las consultas donde me da, son consultas de gran complejidad pero que no tardan mucho, haciendo pruebas... 5 segundos máximo, además son consultas puntuales para procedimientos puntuales


He probado a usar la clausula Witk (NOLOCK) en estas consultas pero sigue pasando.
Estoy pensando en usar el READ COMMITTED SNAPSHOT ISOLATION por que he leido en foros que podría ayudar... alguién sabe si esta puede ser la solución ami problema?

Este nivel de aislamiento podría tener algún efecto perjudicial sobre el rendimiento de la aplicación?

No sé que más probar si alguién sabe como atajar el problema de los interbloqueos se loa gradecería muchisimo.

Gracias de antemano
  #2 (permalink)  
Antiguo 13/08/2014, 03:18
Avatar de jshdev  
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Interbloqueos

Hemos configurado el modo SNAPSHOT... sorprendentemente se ha reducido el número de interbloqueos, pero hemos visto un decremento notable del rendimiento.

Procedimientos que antes tardaban poco ahora tardan una burrada....

Alguna idea?
  #3 (permalink)  
Antiguo 13/08/2014, 04:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Interbloqueos

Y... yo miraría si esos procedimientos están optimizados...
Probablemente no.

Ten en cuenta que no conocemos tu base, tus datos,tus procedimientos,y mucho menos el sistema que utiliza todo eso.
Sin eso solo podemos sugerir caminos genéricos, con lo que tardaremos mucho en encontrar una solución eficiente.

Has pensado en soporte técnico ooficial?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 13/08/2014, 07:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Interbloqueos

aunque los procedimientos tarden poco no quiere decir que eso sea la causa del interbloqueo, ya leiste la definicion de esto? un interbloqueo es cuando 1 transaccion bloquea un objeto y otra quiere usar ese mismo objeto esto pasa cuando tienes por ejemplo un bloque con un insert y llega otra transaccion con un update, el withnolock no sirve para esto(informate un poco mas sobre esto y veras que no es muy recomendable usar with nolock) lo que te recomiendo es que revises tus procedimientos y trates de manejar estos usando bloques de transacciones...que quiero decir con esto que tus updates, inserts, deletes los pongas entre begin tran y commit tran, con eso te evitaras los interbloqueos, ya que si una transaccion se esta ejecutando y llega otra a querer tomar esos mismos recursos, la segunda esperara a que la primera termine sin intentar escribir en el objeto bloqueado :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: Ninguno
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 23:57.