SQL Server 2012错误 - 超出锁定请求超时

时间:2016-05-03 12:46:50

标签: sql-server sql-server-2012

  1. 收缩日志文件和备份数据库

  2. 时收到错误'锁定请求超时'
  3. 我知道什么时候会出现这个错误。某些事务应该锁定表。

    但我需要知道如何找到它?

  4. 由于

2 个答案:

答案 0 :(得分:1)

你可以使用DMV来找出所持有的锁和由谁控制。

SELECT L.resource_type, L.request_mode, L.request_type, L.request_status, L.request_session_id, S.[host_name], S.[program_name], s.login_name
    FROM sys.dm_tran_locks AS L
        INNER JOIN sys.dm_exec_sessions AS S
            ON S.session_id = L.request_session_id
    WHERE resource_database_id = DB_ID(N'msdb');

enter image description here

请参阅联机丛书> sys.dm_tran_locks(Transact-SQL):https://msdn.microsoft.com/en-us/library/ms190345.aspx

联机丛书> sys.dm_exec_sessions(Transact-SQL):https://msdn.microsoft.com/en-gb/library/ms176013.aspx

答案 1 :(得分:1)

  

收缩日志文件和备份时收到错误'锁定请求超时'   数据库

我这是错误的你得到它的日志文件收缩,而不是备份。并且日志文件收缩并不是你应该开始做的事情。不是常规维护的一部分。

在SQL Server中经常缩小任何内容都是计划错误或管理员无能的标志。预先分配合理的数量,与他们一起生活。特别是对于日志文件,应该计划增长具有合理的虚拟日志文件大小。

https://technet.microsoft.com/en-us/magazine/2008.08.database.aspx

解释了他们背后的逻辑。

所以,你的问题是咆哮错误的树。