Pregunta

Tengo una base de datos Big SQL Server 2008 R2 con muchas filas que se actualizan constantemente. La actualización se realiza mediante una aplicación de servicio de back -end que llama procedimientos almacenados. Dentro de uno de esos procedimientos almacenados hay un cursor SQL que recalcula y actualiza los datos. Todo esto funciona bien.

Pero, nuestra aplicación web frontend necesita buscar a través de estas filas y esta búsqueda a veces resulta en un

Bloquear el período de tiempo de venta excedido. en telerik.openaccess.rt.adonet2generic.impl.preparedStatementimp.executeQuery () ..

Después de investigar un poco, descubrí que la mejor manera de hacer que esta consulta se ejecute sin problemas es hacer que se ejecute con "Leer el nivel de aislamiento no comprometido". Descubrí que esta configuración se puede hacer en la configuración de Telerik OpenAccess, pero esa es una configuración que afecta el proyecto ORM de base de datos completo. ¡Eso no es lo que quiero! Quiero este nivel solo para esta consulta.

¿Hay alguna manera de hacer que esta consulta de Linq específica se ejecute en este nivel de aislamiento no comprometido? ¿O podemos hacer esta consulta para usar una pista con Nolock?

¿Fue útil?

Solución

Usar

SET LOCK_TIMEOUT -1

al comienzo de su consulta.

Ver el manual de referencia

Runnung las consultas en read uncommitted El nivel de aislamiento (y el uso de la pista de Nolock) puede causar muchos problemas extraños, debe entender claramente por qué hace esto y cómo puede interferir con su flujo de datos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top