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对特定查询无响应?
答
当查询(例如您的示例)挂起时,最常见的原因(以我的经验)是另一个查询阻止它。这可能是显而易见的。
为了诊断这一点,我只是在Sql server Management Studio中使用Activity Monitor。
找到正在被阻止的节点,并通过该节点,可以找到导致块的原因。然后至少你隔离这个问题。下一步是防止阻塞......这当然取决于。
对我来说,这是一个长期运行BEGIN TRAN
的内容。
承载SQL Server实例的系统上还有其他的东西吗?我建议在一段时间内熟悉SQL Server Profiler(http://msdn.microsoft.com/en-us/library/ms187929.aspx)以查看实际导致挂断的内容。 – 2010-05-05 19:49:10