2014-03-03 66 views
1

所观察到的问题和error message是:SQL Server 2005中 - 无法获得LOCK资源

The instance of the SQL Server Database Engine cannot obtain a LOCK resource at this time. Rerun your statement when there are fewer active users.Ask the database administrator to check the lock and memory configuration for this instance, or to check for long-running transactions 

环境:SQL Server 2005标准的Windows Server 2003标准版版。虚拟化在虚拟机上 - 8个GB RAM 自动应用程序处理的数据 - 读取原始数据和结果写入到数据库中。这些应用程序会收到错误消息,并且会崩溃。 (也有数据库备份和索引维护作业计划。)

与SQL Server 2005企业版和Windows 2003企业版类似的系统上从未观察到同样的错误。

我已经在网上搜索,发现了一些答案。但例如 SQL Server cannot obtain a LOCK resource at this time - What to do? 是不是在我的案件有帮助的

来源之一建议检查:

SELECT request_session_id, COUNT (*) num_locks 
FROM sys.dm_tran_locks 
GROUP BY request_session_id 
ORDER BY count (*) DESC 

一届想出了10

的内存和锁定设置都是默认设置。

我现在的想法是清除其中大部分是旧的,可​​以删除的数据。

没有任何人有任何其他想法如何处理锁定资源的问题?究竟是什么原因? SQL服务器标准版允许更少的资源 - 是与sql服务器版本有关的问题吗?如何解决这个问题?

+0

联系[产品支持](http://support.microsoft.com/contactus/)。 –

回答

1

自动收缩功能,对数据库目录多个锁。 在重建主键后,自动收缩还会碎片化表的主键。

关掉自动收缩功能已经解决了这个问题