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 > ----------------------------------------------------------- > >
