Yes*_*oob 5 sql-server-2012 locking blocking
我使用的是 SQL Server 2012 Express Edition,请问如何查看数据库中记录的所有锁定/块进程?我想查看以前锁定/阻塞的进程的原因是SQL Server只允许我们查看数据库中当前锁定的进程。
我发现我的 SQLException 日志文件中几乎没有超时错误,所以我想知道是否有一种方法可以查看或查询导致超时的锁/块的过去记录。
我没有打开数据库 TT 的阻止进程报告
如果您尚未打开阻止的进程报告,则无法及时跳回以查看过去的阻止进程。
然而,我发现在出现阻塞的地方,这两个已经存在的东西会有所帮助:
首先,SQL Server 跟踪哪些索引涉及阻塞。它不会告诉您涉及哪些查询,也不是永久可靠的(数据在奇怪的时间消失),但它是一个开始。您可以查询sys.dm_db_index_operational_stats来了解更多信息,或者使用开源的sp_BlitzIndex来查看。sp_BlitzIndex 将阻止涉及的索引标识为“激进索引” - 这可能有点令人困惑,因此这里有一篇关于如何解释这些警告的文章。
其次,如果存在阻塞,有时也会出现死锁。好消息!默认情况下,SQL Server 在系统运行状况会话中跟踪死锁,您确实可以使用开源 sp_BlitzLock查询死锁。尝试一下并没有什么坏处——它可能会识别出哪些查询给您带来了问题。
(免责声明:我在这些开源过程中编写了一些代码,并且编写了此处引用的博客文章。)
归档时间: |
|
查看次数: |
14121 次 |
最近记录: |