Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 20-09-2004
Alessan Alessan is offline
Registrado
 
Registrado: jun 2004
Posts: 5
Poder: 0
Alessan Va por buen camino
Hola,

Se que eso es lo que hace una transaccion, el problema es que se me bloquea la tabla mientras que la transaccion esta activa.

Puedo leer los registros usando NOLOCK en la clausula FROM de la consulta de seleccion, pero lo que me gustaría es poder actualizar otros registros (bloqueo a nivel de fila) mientras la transaccion aun no terminó.

El programa ejecuta estas transacciones unas 70 veces por minuto en hilos diferentes, pero no puede actualizar un registro hasta que termina la transaccion anterior..... ese es el problema (la transaccion queda en cola esperando que finalize la anterior).

Supuestamente con la Clausula WITH (ROWLOCK) deberia bloquear solo los registros utilizados en la consulta de actualizacion, pero me bloquea la tabla completa para escritura.

Es decir si ejecuto:

Código SQL [-]
  SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
  go
  begin tran
  update AA with (rowlock)
  set IDAA = '1' 
  where IDAA = '29'

y sin finalizar la transaccion ejecuto:

Código SQL [-]
  SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 
  go
  begin tran
  update AA with (rowlock)
  set IDAA = '2' 
  where IDAA = '30'

Siendo IDAA clave primaria, la segunda consulta no se ejcuta mientras no haga un commit o un rollback de la primera transaccion.

¿Alguna Sugerencia?

Un Saludo.

Última edición por Alessan fecha: 20-09-2004 a las 17:19:11.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:20:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi