代码之家  ›  专栏  ›  技术社区  ›  Jose

SQL Server性能[已关闭]

  •  -1
  • Jose  · 技术社区  · 16 年前

    我知道我的问题无法得到具体的答案,但我想知道我是否能找到工具来回答我的问题。

    好的,我们有一个SQL Server 2008数据库,在过去的4天里,它有5到20分钟的时间对特定的查询没有响应。

    例如,以下查询在不同的查询窗口中同时运行,结果如下

    SELECT * FROM Assignment --hangs indefinitely
    
    SELECT * FROM Invoice -- works fine
    

    许多表都有非聚集索引以帮助加快选择速度

    我知道的是: 1)同一查询将无限期挂起或正常运行。 2)在“流程”选项卡的“活动监视器”中,通常有80-100个流程正在运行。

    我想发生的是 1)用户更新表 2)这将导致更新一个或多个索引 3)在更新索引时,另一个用户发出选择。

    有没有一种方法可以让我弄清楚为什么在特定的时刻,SQL Server对特定的查询没有响应?

    2 回复  |  直到 13 年前
        1
  •  3
  •   David    16 年前

    这个 sp_who 系统存储过程将告诉您是否由于另一个查询而阻止了连接。

        2
  •  1
  •   Frank V    16 年前

    当一个查询(如您的示例)挂起时,最常见的原因(在我的经验中)是另一个查询正在阻塞它。这可能很明显。

    为了诊断这个问题,我只使用了SQL Server Management Studio中的活动监视器。

    找到被阻塞的节点,通过它,您可以找到导致阻塞的原因。然后至少你把问题隔离了。下一步是防止阻塞…这当然要看情况而定。

    对我来说,这是一个漫长的过程 BEGIN TRAN 内容。

    推荐文章