Problemas de bloqueos

10/07/2006 - 00:07 por DAGU | Informe spam
Saludos,
Actualmente etoy teniendo graves problemas de bloqueos en los servidores de
la empresa donde laboro, la causa ya la detectamos y la misma se debe a que
dentro de las setencias begin tran y commit tran de un SP tenemos una
cantidad importante de insert update e incluso llamadas a otros SP, esta
correcto que este dentro de los begin tran y commit tran por que en caso de
cualquier error necesito que se le haga rollback a todo, pero me ocasiona
bloqueos con las otras aplicaciones que llaman a las tablas involucradas, lo
que se me ocurrio fue realizar un bloqueo por registro y lo intente con la
setencia rowlock y la misma no funciono ya que no se si la estaba aplicando
mal pero no estaba bloqueando nada mas el registro si no que aun seguía
bloqueando toda la tabla, quisiera saber si tienen alguna sugerencia que
pueda servirme.

Preguntas similare

Leer las respuestas

#1 Maxi
10/07/2006 - 03:06 | Informe spam
Hola, yo revisaria ese proceso en si, si tienes muchos insert update
entonces se van a generar bloqueos, la verdad que no se como estas
ejecutando ese proceso quizas en lugar de tener tantos insert, updte lo
pueda reducir, pero una buena practica es usar transacciones pero tambien
que sean lo mas cortas posibles



Salu2

Microsoft MVP SQL Server
www.sqlgururs.org
Email:


"DAGU" wrote in message
news:
Saludos,
Actualmente etoy teniendo graves problemas de bloqueos en los servidores
de
la empresa donde laboro, la causa ya la detectamos y la misma se debe a
que
dentro de las setencias begin tran y commit tran de un SP tenemos una
cantidad importante de insert update e incluso llamadas a otros SP, esta
correcto que este dentro de los begin tran y commit tran por que en caso
de
cualquier error necesito que se le haga rollback a todo, pero me ocasiona
bloqueos con las otras aplicaciones que llaman a las tablas involucradas,
lo
que se me ocurrio fue realizar un bloqueo por registro y lo intente con la
setencia rowlock y la misma no funciono ya que no se si la estaba
aplicando
mal pero no estaba bloqueando nada mas el registro si no que aun seguía
bloqueando toda la tabla, quisiera saber si tienen alguna sugerencia que
pueda servirme.
Respuesta Responder a este mensaje
#2 qwalgrande
10/07/2006 - 08:01 | Informe spam
Hola.

Aquí tienes un problema de diseño, transacciones muy largas, con cierta
concurrencia, generarán muchos bloqueos. Resolverlo no suele ser muy
sencillo, pero inténtalo, trata de reducir la parte que está dentro de una
transacción en tu procedimiento almacenado. Ya has podido comprobar que
indicar un nivel de bloqueo sirve para bloquear de más, pero no para
bloquear de menos. Si el motor cree que necesita bloquear una página o un
rango de ellas, lo hará aunque tú le hayas indicado que bloquee sólo un
registro.

Si entre tanto necesitas que se puedan consultar los datos, puedes bajar el
nivel de aislamiento de esas consultas externas que se ven bloqueadas.

Alberto López Grande (qwalgrande)


"DAGU" escribió en el mensaje
news:
Saludos,
Actualmente etoy teniendo graves problemas de bloqueos en los servidores
de
la empresa donde laboro, la causa ya la detectamos y la misma se debe a
que
dentro de las setencias begin tran y commit tran de un SP tenemos una
cantidad importante de insert update e incluso llamadas a otros SP, esta
correcto que este dentro de los begin tran y commit tran por que en caso
de
cualquier error necesito que se le haga rollback a todo, pero me ocasiona
bloqueos con las otras aplicaciones que llaman a las tablas involucradas,
lo
que se me ocurrio fue realizar un bloqueo por registro y lo intente con la
setencia rowlock y la misma no funciono ya que no se si la estaba
aplicando
mal pero no estaba bloqueando nada mas el registro si no que aun seguía
bloqueando toda la tabla, quisiera saber si tienen alguna sugerencia que
pueda servirme.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida