重现步骤(SQL Server 2008R2):
繁殖率100%。
我尝试了
的组合 DBCC FREEPROCCACHE
DBCC DROPCLEANBUFFERS
DBCC FREESESSIONCACHE
DBCC FREESYSTEMCACHE ('ALL')
DBCC UPDATEUSAGE (dbname)
EXEC sp_updatestats
select * from master..sysprocesses where blocked <> 0
没有任何作用,只能重新启动SQL Server。
我认为这只是一个糟糕的计划,但预计FREEPROCCACHE
可以修复它,而无需重新启动SQL Server。我需要清除一些其他缓存吗?
查询不是事务性/阻塞/锁定样式,主要选择进出它创建的临时表,而不是服务器上的其他活动。
我认为这一定是一个糟糕的计划,但DBCC FREEPROCCACHE
没有完成这项工作。
有没有人有线索?
答案 0 :(得分:0)
在我看来,你有一个与数据库的开放式连接,你可能会“站起来”。当您还原数据库时,您需要独占访问权限,以便删除数据库中的任何人并回滚正在进行的任何事务(您还原将会输入任何有害的东西)。然后,您可以还原您的数据库。
现在重新启动SQL服务器将关闭所有活动连接,但有一种更简单的方法; - )
USE MASTER; GO;
ALTER DATABASE [YourDbName] - &gt;将其更改为您的数据库名称
使用ROLLBACK IMMEDIATE设置SINGLE_USER;
之后,您可以运行恢复。
度过愉快的一天
沃尔特