Bloqueos

17/06/2004 - 20:42 por jortiz | Informe spam
Buenos días, tengo actualmente un problema bastante serio
con SQL server 2000 que me está causando mucha dificultad
resolver, se trata del manejo de bloqueos de tablas.
Siempre he utilizado Oracle y el manejo aquí es un poco
extraño para mi pero deseo incursionar en éste gran dbms.

El problema es que desde una aplicación en java estoy
ejecutando Queries y si a su vez ejecuto alguna
transacción como por ejemplo un update o un insert, la
aplicación se bloquea, el problema debe ser algo como un
abrazo mortal (deadlock).

Como resuelvo este problema ???

He leído algo sobre ésto, y me he dado cuenta que SQL
SErver bloquea las tablas cuando se realiza un select, de
modo que ésta debe ser la causante. Ahora bien, deseo
poder hacer transacciones, sin tener que esperar a que la
consulta termine ya que algunas de ellas son bastante
largas, ya he visto algo acerca del nolock, pero tambien
conozco sus riezgos.

Me podrían decir como puedo actuar en ésto casos ???

Existe alguna sentencia para desbloquear manualmente un
objeto, ya que por lo que veo los queries me están dejando
las tablas bloqueadas hasta que cierre la sesion del query
analizer (Ya que aun las veo en el locks/object del
enterprise manager y se desaparecen cuando cierro el query
analyzer y reinicio el enterprise manager).
 

Leer las respuestas

#1 Roberto G.A.
17/06/2004 - 22:36 | Informe spam
La mejor solución para estos queridos "DeadLock" viene desde el propio
diseño del acceso de la base de datos, por ejemplo si tienes unos métodos
que usan tabla1 primero y luego la tabla2, esta misma jerarquía de acceso
deberías respetarla a lo largo de tu aplicación, ya que si al mismo tiempo
se ejecuta otro método que realiza el acceso justo al revés, o sea tabla2 y
luego tabla1 podemos tener problemas de este tipo.

Espero haberte orientado. 0:)
Roberto G.A.


"jortiz" wrote in message
news:1deaf01c4549a$db2469f0$
Buenos días, tengo actualmente un problema bastante serio
con SQL server 2000 que me está causando mucha dificultad
resolver, se trata del manejo de bloqueos de tablas.
Siempre he utilizado Oracle y el manejo aquí es un poco
extraño para mi pero deseo incursionar en éste gran dbms.

El problema es que desde una aplicación en java estoy
ejecutando Queries y si a su vez ejecuto alguna
transacción como por ejemplo un update o un insert, la
aplicación se bloquea, el problema debe ser algo como un
abrazo mortal (deadlock).

Como resuelvo este problema ???

He leído algo sobre ésto, y me he dado cuenta que SQL
SErver bloquea las tablas cuando se realiza un select, de
modo que ésta debe ser la causante. Ahora bien, deseo
poder hacer transacciones, sin tener que esperar a que la
consulta termine ya que algunas de ellas son bastante
largas, ya he visto algo acerca del nolock, pero tambien
conozco sus riezgos.

Me podrían decir como puedo actuar en ésto casos ???

Existe alguna sentencia para desbloquear manualmente un
objeto, ya que por lo que veo los queries me están dejando
las tablas bloqueadas hasta que cierre la sesion del query
analizer (Ya que aun las veo en el locks/object del
enterprise manager y se desaparecen cuando cierro el query
analyzer y reinicio el enterprise manager).

Preguntas similares