Sql Server的性能

问题描述:

我知道我无法获得特定的答案,但我想知道是否可以找到工具来获得我的答案。Sql Server的性能

好吧,我们有一个Sql Server 2008数据库,在过去的4天里有5-20分钟的时间对特定查询无响应的时刻。

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

SELECT * FROM Assignment --hangs indefinitely 

SELECT * FROM Invoice -- works fine 

很多的表都有非聚集索引,以加快执行SELECT

这是我知道的: 1)同样的查询又会无限期挂起或正常运行。 2)在进程选项卡活动监视器有正常运行

我认为发生的事情是 1)用户更新了表 2)这将导致一个或多个索引得到更新 周围80-100流程3)另一位用户在索引更新时发出选择

有没有一种方法可以找出为什么在特定时刻SQL Server对特定查询无响应?

+1

承载SQL Server实例的系统上还有其他的东西吗?我建议在一段时间内熟悉SQL Server Profiler(http://msdn.microsoft.com/en-us/library/ms187929.aspx)以查看实际导致挂断的内容。 – 2010-05-05 19:49:10

系统存储过程sp_who会告诉你由于另一个查询而导致连接是否被阻塞。

当查询(例如您的示例)挂起时,最常见的原因(以我的经验)是另一个查询阻止它。这可能是显而易见的。

为了诊断这一点,我只是在Sql server Management Studio中使用Activity Monitor。

找到正在被阻止的节点,并通过该节点,可以找到导致块的原因。然后至少你隔离这个问题。下一步是防止阻塞......这当然取决于。

对我来说,这是一个长期运行BEGIN TRAN的内容。