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

Sql Server Locks

Estas en el tema de Sql Server Locks en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/06/2004, 09:33
 
Fecha de Ingreso: junio-2004
Ubicación: Medellin, Colombia
Mensajes: 1
Antigüedad: 19 años, 10 meses
Puntos: 0
Sql Server Locks

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.

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.
  #2 (permalink)  
Antiguo 17/06/2004, 17:14
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Se supone que SQL Server resuelve los deadlock sencillos, pero si no lo logra se requere de la intervención manual del admor.

Ya que esta el problema lo puedes ver con sp_lock, y para matar alguno de los problemáticos puedes usar sp_kill <pid_bloqueado>

Para evitar esto se supone que debes usar transacciones, y procurar que duren lo menos posible, esto es, no mezclar entradas del usuario dentro de la transacción.

Revisa estos temas en los Books Online (la ayuda):
SET TRANSACTION ISOLATION LEVEL
SET DEADLOCK_PRIORITY
Minimizing Deadlocks

Espero que te ayude
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
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 10:13.