Ver Mensaje Individual
  #4 (permalink)  
Antiguo 19/03/2012, 14:08
cancha
 
Fecha de Ingreso: junio-2007
Mensajes: 75
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: Bloqueos problematicos

Cita:
Iniciado por matanga Ver Mensaje
100% de acuerdo, los interbloqueos son por errores en el diseño de las transacciones y se producen cuando hay dos o más operaciones de escritura simultáneas, en estos casos, habilitar Row Versioning no resuelve ni reduce el problema ya que es una opción para bloqueos entre escritura-lectura o lectura-escritura.

Saludos
Entiendo, pero no son muchos los problemas de interbloqueo, como ven el gráfico
me reporta tiempos de espera por bloqueos compartidos (LCK_M_S) osea el tiempo que se quedan esperando las otras consultas para que libere el recurso y se pueda usar, es este el mayor problema, las columnas pintadas de color medio plomo representan los tiempos de espera por LCK_M_S, y bueno el aplicativo es grande y la cantidad de código que se tendría que modificar también llevaría tiempo, a eso le sumamos que no se cuenta con un equipo de desarrollo, que den soporte a esto, por ello considere la opción de activar el versionamiento de fila

para evitar esos tiempos de espera por bloqueo compartido, los bloqueos compartidos no son interbloqueos o me equivoco ? lo que me dices del versionado de filas es que evita el bloqueo de lectura a escritura y viceversa, y no evita el caso de lectura a lectura? lo que pasa que son los select los que bloquean a otros select para este caso en particular

tengo el nivel de aislamiento read_commited en las transacciones

y lo otro que eh visto es que hay selects dentro de transacciones cuando solo las transacciones deberían de usarse solo para operaciones que modifiquen datos correcto? no entiendo porque habría que ponerle selects dentro de transacciones? esto es lo que creo que causa esos bloqueos al estar los select dentro de Begin trans, bloquean la tabla hasta que el select termine, cuando esto no es necesario y casos como esto hay por varios sitios del aplicativo, como no hay developers y para no demorar mas tiempo (los usuarios quieren soluciones rapidas) considero activar el versionado de filas, pero si solo evita el bloqueo de lectura a escritura y viceversa, mas no de lectura a lectura no solucionaría el problema?

Saludos