查询以获取运行并导致事务锁定的历史查询

时间:2016-05-27 01:28:55

标签: sql-server sql-server-2008-r2

是否存在可以运行的方法或存储过程或查询,以获取先前在数据库上运行并且是锁定表的所有查询/事务的列表。

我正在研究进行分析以查看哪些事务正在锁定哪些表。

1 个答案:

答案 0 :(得分:0)

这似乎是一个更棘手的问题。

关于锁定的历史数据,只要我们不谈论"查询商店"或其他一些可被视为"外部"的技术,由DMV sys.dm_db_index_operational_stats累积。

这种DMV相对稳定。但它的对应sys.dm_exec_procedure_stats一旦有特定的计划就会有改变的倾向,这可能会积累一些有趣的"数据,重新编译。

随着统计变化率的提高,累积数据的这种瞬态特性趋于更加明显。所以,你可以看到有时(甚至大多数时候)你可能无法使用来自** stats系列的DMV获得锁定与其原因之间的确切联系,但是知道如何发生遗漏,你有一些信息要做好判断。

添加sys.sql_dependencies链接锁定受影响的对象和过程,这是一个起点。

请注意*** stats DMV系列的其他资源: