【问题标题】:Subsonic: Select on a View, locks the table update?Subsonic:在视图上选择,锁定表更新?
【发布时间】:2010-02-01 00:00:11
【问题描述】:

我现在有一个网站正在运行。我正在使用 Subsonic 来处理数据库连接等。 更新表(比如员工)时出现超时错误。当我检查 sp_who2 时,我看到 PID 的挂起连接正在通过另一个 pid 块更新,所以我运行分析器并发现这个挂起的连接何时发生,阻塞的 pid 是视图上的一个选择语句(比如ActiveEmployees,与表相同,但有一些 where 条件)。

任何人都知道为什么视图上的 Select 语句会导致更新失败。如果是其他(例如由于更新导致选择失败)可能是合理的。 有什么方法可以让我在不锁定表格的情况下对视图进行选择?

PS:我使用的是 Sql server 2005 和 subsonic 2.2。

【问题讨论】:

    标签: asp.net sql-server locking subsonic


    【解决方案1】:

    如果您不关心返回数据的准确性(它可能会返回未提交的行),您可以在视图中的 select 语句中添加 with(nolock) 提示。 当Select语句扫描其他线程正在插入的表格时,我们也遇到了超时。我通过添加我们的选择使用的适当索引解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多