Niveles de aislamiento en SQL Server 2000

01/02/2006 - 00:11 por Donald | Informe spam
Buenas,
Estoy realizando un script en el que una transaccion necesita insertar un
registro en una tabla, digamos Persona, no deseo bloquearla, entonces utilizo
el nivel de aislamiento "read committed", a continuacion de insertar el
registro, necesito actualizar otro registro en otra tabla, digamos Contador,
pero aqui si es necesario bloquear el registro, para esto se utilizaria el
nivel de aislamiento "serializable".

Estoy realizando pruebas para ver que tan eficiente seria, pero en el
momento en que coloca el nivel de aislamiento serializable bloquea ademas la
tabla Persona aunque ya haya realizado la insercion.

Aqui les muestro el codigo:

***
set transaction isolation level read committed
begin tran
insert into Persona(Nombre) values('X')
begin tran
set transaction isolation level serializable
declare @Cont bigint
set @Cont = (select max(idContador) from Contador)
update Contador set idContador = @Cont + 1
commit tran
commit tran
***

Mi consulta es, cuando se utiliza otro nivel de aislamiento aunque sea en
otra transaccion, las modificaciones hechas antes tambien utilizan ese nivel
de aislamiento?

Muchas gracias...

Preguntas similare

Leer las respuestas

#1 Maxi [MVP]
01/02/2006 - 02:20 | Informe spam
Hola, el tema es asi, vos no estas usando un nivel de aislamiento por tabla
sino que lo estas volviendo a cambiar. Otro tema, no veo porque quieres
cambiar el nivel de aislamiento, yo en contadas ocaciones debi hacer eso,
porque en lugar de contarnos como estas tratando de curarte el dolor de
cabeza nos cuentas realmente cual es el problema a resolver y porque
necesitas bloquear una tabla y luego la otra no.

Que te ha llevado a esa conclusion?


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"Donald" escribió en el mensaje
news:
Buenas,
Estoy realizando un script en el que una transaccion necesita insertar un
registro en una tabla, digamos Persona, no deseo bloquearla, entonces
utilizo
el nivel de aislamiento "read committed", a continuacion de insertar el
registro, necesito actualizar otro registro en otra tabla, digamos
Contador,
pero aqui si es necesario bloquear el registro, para esto se utilizaria el
nivel de aislamiento "serializable".

Estoy realizando pruebas para ver que tan eficiente seria, pero en el
momento en que coloca el nivel de aislamiento serializable bloquea ademas
la
tabla Persona aunque ya haya realizado la insercion.

Aqui les muestro el codigo:

***
set transaction isolation level read committed
begin tran
insert into Persona(Nombre) values('X')
begin tran
set transaction isolation level serializable
declare @Cont bigint
set @Cont = (select max(idContador) from Contador)
update Contador set idContador = @Cont + 1
commit tran
commit tran
***

Mi consulta es, cuando se utiliza otro nivel de aislamiento aunque sea en
otra transaccion, las modificaciones hechas antes tambien utilizan ese
nivel
de aislamiento?

Muchas gracias...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida