Question

J'ai une grande base de données SQL Server 2008 R2 avec de nombreuses lignes qui sont constamment mis à jour. La mise à jour se fait par une application de service de fin arrière qui appelle les procédures stockées. Au sein de l'une de ces procédures stockées il y a un curseur SQL qui Recalcule et les données mises à jour. Cela va tout va bien.

Mais, nos besoins d'applications Web frontend pour la recherche à travers ces lignes et cette recherche parfois des résultats dans un

temps de demande de verrouillage dépassé sur la période. à Telerik.OpenAccess.RT.Adonet2Generic.Impl.PreparedStatementImp.executeQuery () ..

Après avoir fait quelques recherches, j'ai trouvé que la meilleure façon de faire cette requête à exécuter sans problème est de le faire fonctionner avec « lu niveau d'isolation non validée ». J'ai trouvé que ce réglage peut être effectué dans les paramètres Telerik OpenAccess, mais c'est un paramètre qui affecte le projet ORM de base de données complète. Ce n'est pas ce que je veux! Je veux que ce niveau pour cette requête uniquement.

Y at-il un moyen de faire cette requête LINQ spécifique pour fonctionner dans ce niveau d'isolement non engagés? Ou pouvons-nous faire de cette seule requête d'utiliser un WITH NOLOCK?

Était-ce utile?

La solution

Utilisez

SET LOCK_TIMEOUT -1

au début de votre requête.

Voir la manuel

de référence

Runnung les requêtes dans le niveau d'isolement de read uncommitted (et en utilisant soupçon NOLOCK) peut causer beaucoup de problèmes étranges, vous devez comprendre clairement pourquoi faites-vous cela et comment il peut interférer avec votre flux de données

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top