Leí que si uso IsolationLevel.ReadUncommitted, la consulta no debería emitir ningún bloqueo. Sin embargo, cuando probé esto, vi el siguiente bloqueo:
Resource_Type: HOBT
Request_Mode: S (Shared)
¿Qué es un bloqueo HOBT? ¿Algo relacionado con HBT (Heap o Binary Tree lock)?
¿Por qué todavía obtendría un bloqueo S?
¿Cómo evito el bloqueo compartido al realizar consultas sin activar la opción de instantánea de nivel de aislamiento?
Estoy probando esto en SQLServer 2008, y la opción de instantánea está desactivada. La consulta solo realiza una selección.
Puedo ver que se requiere Sch-S, aunque parece que SQL Server no lo muestra en mi consulta de bloqueo. ¿Cómo es que todavía emite un bloqueo compartido? De acuerdo a:
ESTABLECER NIVEL DE AISLAMIENTO DE TRANSACCIÓN (Transact-SQL)
Las transacciones que se ejecutan en el
READ UNCOMMITTED
nivel no emiten bloqueos compartidos para evitar que otras transacciones modifiquen los datos leídos por la transacción actual.
Entonces estoy un poco confundido.