我试图在我的开发数据库上执行一些离线维护(从实时备份恢复开发数据库),但是通过SQL Server Management Studio执行的“脱机”命令执行得非常慢——大约30分钟以上。我只是在我的智慧的尽头,我似乎找不到任何参考网上可能导致速度问题,或如何解决它。

一些站点建议,打开到数据库的连接会导致这种放缓,但使用此数据库的唯一应用程序是我的开发机器的IIS实例,并且服务已停止—没有更多打开的连接。

是什么导致了这种减速,我能做些什么来加速它?


当前回答

以我为例,在等待了这么久之后,我没有耐心,干脆关闭了管理工作室。退出前,显示成功消息,db is offline。可以重命名这些文件。

其他回答

此外,关闭您可能打开的连接到相关数据库的任何查询窗口;)

下次,在“脱机”对话框中,记得选中“删除所有活动连接”复选框。我也在本地机器上的SQL_EXPRESS上,没有连接,但除非我选中该复选框,否则会出现这种减速。

很可能从某个地方连接到DB(一个罕见的例子:异步统计更新)

要查找连接,请使用sys.sysprocesses

USE master
SELECT * FROM sys.sysprocesses WHERE dbid = DB_ID('MyDB')

要强制断开连接,请使用ROLLBACK IMMEDIATE

USE master
ALTER DATABASE MyDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE

关闭SSMS (SQL服务管理器)的实例,从请求解决了我的问题.....

您是否有任何连接到此DB的打开的SQL Server Management Studio窗口?

将其置于单用户模式,然后再试一次。