- Snapshot Isolation - SQL Server 2005 Express Edition -

30/11/2005 - 17:02 por Turus.Sys | Informe spam
Estoy haciendo pruebas en SQL Server 2005 Express Edition, y en este
nuevo nivel de aislamiento
encontré un caso donde la transacción SECUENCIA 2 queda loopeando sin
terminar, alguien tiene idea de porque?




SECUENCIA 1 (*)


1.1) SET TRANSACTION ISOLATION LEVEL SNAPSHOT

1.2) BEGIN TRAN

1.3) SELECT FIELD1 FROM TABLE1 WHERE FIELD_ID = 8


1.4) UPDATE TABLE1 SET FIELD1 = 'NEWVALUE' WHERE FIELD_ID = 8

1.5) COMMIT TRAN

1.6)



SECUENCIA 2 (*)


2.1) SET TRANSACTION ISOLATION LEVEL SNAPSHOT

2.2) BEGIN TRAN

2.3) SELECT FIELD1 FROM TABLE1 WHERE FIELD_ID = 8

2.4) UPDATE TABLE1 SET FIELD1 = 'NEWVALUE_2' WHERE FIELD_ID = 8

2.5)

2.6) COMMIT TRAN



Muchas Gracias
Darío Flores


(*) Suponiendo que se ejecutan al mismo tiempo y respetando el orden.

[1] (1.1) (2.1)
[2] (1.2) (2.2)
[3] (1.3) (2.3)
[4] (1.4) (2.4)
[5] (1.5) (2.5)
[6] (1.6) (2.6)
 

Leer las respuestas

#1 Turus.Sys
03/12/2005 - 17:02 | Informe spam
Antes que nada muchas gracias por tu respuesta, te cuento que estoy
seguro que no tenia niguna conexión por encima.-

Comprendo claramente tu ejemplo, y es lógico el error. Además ya hice
varias pruebas de esa manera.
Pero el caso que menciono arriba es diferente.

Las dos secuencias trabaja normalmente hasta la linea [(1.4) y (2.4)]
El tema es que cuando la Secuencia 1 realiza el COMMIT(terminado
correctamente la transacción) la SECUENCIA 2 no hace nada(linea 2.5),
pero luego en la cuanto quiere realizar el COMMIT aqui es donde queda
loopeando sin parar (linea 2.6)



Saludos
Darío Flores

Preguntas similares