超出锁定请求超时时间 - Telerik OpenAccess ORM

时间:2012-02-18 15:57:00

标签: sql sql-server linq openaccess telerik-open-access

我有一个庞大的SQL Server 2008 R2数据库,其中有许多行不断更新。更新由调用存储过程的后端服务应用程序完成。在其中一个存储过程中,有一个SQL游标可以重新计算和更新数据。一切都运行良好。

但是,我们的前端Web应用程序需要搜索这些行,此搜索有时会导致

  

超出锁定请求超时时间。在   Telerik.OpenAccess.RT.Adonet2Generic.Impl.PreparedStatementImp.executeQuery()..

在做了一些研究之后,我发现让这个查询运行没有问题的最好方法是让它以“读取未提交的隔离级别”运行。我发现此设置可以在Telerik OpenAccess设置中进行,但这是一个影响整个数据库ORM项目的设置。那不是我想要的!我只希望此级别用于此查询。

有没有办法让这个特定的LINQ查询在这个未提交的隔离级别运行? 或者我们可以使这一个查询使用WITH NOLOCK提示吗?

1 个答案:

答案 0 :(得分:2)

使用

SET LOCK_TIMEOUT -1

在查询的开头。

请参阅reference manual

运行read uncommitted隔离级别的查询(并使用NOLOCK提示)可能会导致许多奇怪的问题,您必须清楚地了解为什么这样做以及它如何干扰您的数据流