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

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

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


当前回答

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

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

其他回答

在SSMS中:右键单击SQL server图标,Activity Monitor。开放的过程。找到被处理的连接。右键单击进程,Kill。

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

对我来说,我只需要进入Job Activity Monitor并停止正在处理的两件事情。然后它马上就下线了。就我而言,我知道这两个过程是什么,也知道停止它们是可以的。

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

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

在SSMS中,将数据库设置为只读,然后返回。连接将被关闭,从而释放锁。

在我的例子中,有一个网站打开了到数据库的连接。这个方法很简单:

右键单击数据库-> Properties -> Options “数据库只读”设置为“True” 在弹出的对话框中单击“是”,警告SQL Server将关闭与数据库的所有连接。 重新打开选项并关闭只读 现在尝试重命名数据库或使其脱机。