我试图在我的开发数据库上执行一些离线维护(从实时备份恢复开发数据库),但是通过SQL Server Management Studio执行的“脱机”命令执行得非常慢——大约30分钟以上。我只是在我的智慧的尽头,我似乎找不到任何参考网上可能导致速度问题,或如何解决它。
一些站点建议,打开到数据库的连接会导致这种放缓,但使用此数据库的唯一应用程序是我的开发机器的IIS实例,并且服务已停止—没有更多打开的连接。
是什么导致了这种减速,我能做些什么来加速它?
我试图在我的开发数据库上执行一些离线维护(从实时备份恢复开发数据库),但是通过SQL Server Management Studio执行的“脱机”命令执行得非常慢——大约30分钟以上。我只是在我的智慧的尽头,我似乎找不到任何参考网上可能导致速度问题,或如何解决它。
一些站点建议,打开到数据库的连接会导致这种放缓,但使用此数据库的唯一应用程序是我的开发机器的IIS实例,并且服务已停止—没有更多打开的连接。
是什么导致了这种减速,我能做些什么来加速它?
当前回答
关闭SSMS (SQL服务管理器)的实例,从请求解决了我的问题.....
其他回答
您是否有任何连接到此DB的打开的SQL Server Management Studio窗口?
将其置于单用户模式,然后再试一次。
此外,关闭您可能打开的连接到相关数据库的任何查询窗口;)
很可能从某个地方连接到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
在我的例子中,数据库与旧的Sharepoint安装有关。在服务器管理器中停止和禁用相关服务“解除”已经运行了40分钟的脱机操作,并立即完成。
您可能希望检查当前是否有任何服务正在使用该数据库。
SSMS,特别是从您自己的桌面远程运行而不是直接在数据库服务器中运行时,可能是分离数据库时出现长时间延迟的原因之一。由于某些原因,SSMS可能无法断开与数据库的任何现有“连接”。
当我们直接从数据库服务器本身执行时,我们发现这个过程几乎是即时的。事实上,它杀死了我自己的桌面SSMS会话的尝试,它“接管”并分离数据库。
这里建议的其他方法都不起作用。
谢谢