Sql Server锁定表

时间:2009-11-24 15:25:36

标签: sql-server-2005 locking

我认为这是不可能的,但我想确定。

有没有办法让我知道桌子何时被锁定,可能需要多长时间?我知道我可以看到一张桌子当前是否已锁定,但我希望有一个锁的“历史”。

3 个答案:

答案 0 :(得分:4)

其他响应中提到的RedGate工具的“免费”替代方法是 MS-SQL Server Profiler (请参阅SQL Server Management Studio的“工具”菜单中)。此工具允许您通过指定要监视和/或记录的事件类型来定义“跟踪”。甚至[在SQL2008中,也可能在旧版本中]是用于锁定问题的默认模板: TSQL_Locks

请注意分析探查器的日志可能需要一些工作/搞清楚。可以根据一组特定的标准过滤事件(以及在源头过滤这些事件,即首先从日志中排除这些标准),但RedGate等第三方产品可能会提供更多的便利性。 - 使用,更好的聚合功能等。

修改
(遵循Metju的评论) 上面提出的解决方案意味着可以提前在分析器工具开始记录与锁相关的事件。在MS-SQL 2005中没有任何内容,至少没有任何公开记录,可以访问有关锁的完整历史信息,“ post facto ”。但是,根据用户的需要, 可能有时会从SQL活动监视器(来自管理工作室左侧数据库等树中的“管理”)收集 ),特别是“按对象锁定”视图。这些隐含可用的信息(无需任何设置)通常足以识别死锁的起源和类似问题。

答案 1 :(得分:2)

从Red-Gate检查此工具。对于这种事情,我使用它非常多。此外,它还可以让我查看长时间运行的查询以及许多其他有用的信息。最后一小时,最后一天,永远等过滤器......

RedGate SQL Response

答案 2 :(得分:1)

如果没有运行监视工具(自己动手,第三方或处理SQL事件探查器的输出),请不要这样做。