El select a menos que estés en en el nivel de aislamiento READ UNCOMMITED o
uses el HINT NOLOCK emite al menos SHARED LOCK durante el
select. Dependiendo de si estas en READ COMMITED, REPETEABLE READS o
SERIALIZABLE ese Lock permanece o se libera al terminara el select o al
terminar la transaccion. Hay unos cuantos detalles adicionales pero no
vienen al caso por el tema de fantasmas y otros problemas asociados que
provocan escalamientos en los logs para resolver estos requerimientos de
aislamiento.

Sin embargo me preocupa mucho mas el motivo de por que están tratando de
hacer esas lecturas sin locks. .

La respuesta obvia de evitar bloqueos no tiene sentido dentro de una
transacción sino que me interesa la respuesta funcional.

saludos

-- 
--------------------------------
Ing. José Mariano Alvarez
SQL Total Consulting
Bogota 3631 P3B
1407 Buenos Aires-Argentina
Movil: (011)-15-4184-7541
Desde el exterior: (+54-911)-4184-7541
[email protected]




2008/12/16 Maxi Accotto <[email protected]>

> Carlos y Nicolas, un select no hace loqueos por default, lo que sucede
> que si hay loqueos espera! si usan 2005 les aconsejo que miren el
> isolation level snapshot
>
> El día 16 de diciembre de 2008 11:31, Carlos Peix
> <[email protected]> escribió:
> > Hola Nicolas,
> >
> > No creo que sea desaconsejado leed durante una transaccion y no
> > necesariamente tenes que tener problemas de bloqueos. Lo que tenes que
> hacer
> > es leer "sobre la misma conexión", de esta manera te aseguras de que
> estas
> > sobre la misma conexión.
> >
> > A partir de ADO.NET 2.0 podes usar la conexión para mas de un resultado,
> > busca informacion sobre MARS (multiple active recordsets)
> >
> > Carlos Peix
> >
> > -----Mensaje original-----
> > De: [email protected] [mailto:[email protected]] En nombre de Nicolas
> Locatelli
> > Enviado el: Martes, 16 de Diciembre de 2008 11:20 a.m.
> > Para: [email protected]
> > Asunto: [dbms] DataReader: leer datos durante una transacción
> >
> > Hola a todos, tengo una consulta sobre DataReader contra SQL
> > Server:
> > Es posible leer hacer una consulta a la BD con un DataReader en medio de
> una
> > transacción? Cómo se puede hacer para que los bloqueos no sean tan
> > estrictos?
> > Puede que no sea una operación "aceptada" la de leer durante, pero es
> > simplemente para saber.
> >
> > Muchas gracias a quién me pueda orientar y sugerir.
> > Nicolas
> >
> >
> >
> >
> >
> >
>
>
>
> --
> -----------------------------------------------------------
> Microsoft MVP en SQL Server
> Consultor en SQLTotalConsulting
> Excelencia en servicios y consultoria  SQLServer
> www.sqltotalconsulting.com
> -----------------------------------------------------------
>
>

Responder a