我试图对我的开发数据库进行离线维护(从实时备份恢复),但是SQL Server Management Studio的“下线”命令速度极慢,目前已经超过30分钟。我快要崩溃了,似乎找不到任何在线参考来解决速度问题。
一些网站建议说,打开的数据库连接会导致此减速,但是使用此数据库的唯一应用程序是我的开发机器的IIS实例,并且服务已停止-没有更多的打开连接。
是什么原因导致这种减速,我该怎么做才能加快它?
我试图对我的开发数据库进行离线维护(从实时备份恢复),但是SQL Server Management Studio的“下线”命令速度极慢,目前已经超过30分钟。我快要崩溃了,似乎找不到任何在线参考来解决速度问题。
一些网站建议说,打开的数据库连接会导致此减速,但是使用此数据库的唯一应用程序是我的开发机器的IIS实例,并且服务已停止-没有更多的打开连接。
是什么原因导致这种减速,我该怎么做才能加快它?
我尝试了下面所有的建议,但都没有成功。
终止 < SPID >
使用 Rollback Immediate 设置数据库为单用户模式:ALTER DATABASE SET SINGLE_USER WITH Rollback Immediate
使用 ROLLBACK IMMEDIATE 将数据库设置为脱机状态:ALTER DATABASE SET OFFLINE WITH ROLLBACK IMMEDIATE
结果:上述两个命令也卡住了。
4. 右键单击数据库 -> 属性 -> 选项 将数据库只读属性设置为 True 对于 SQL Server 关闭数据库连接的警告对话框,点击 'Yes'。
结果:窗口卡在执行中。
最后,我从配置管理器中重新启动了 SQL Server 服务,然后运行 ALTER DATABASE SET OFFLINE WITH ROLLBACK IMMEDIATE 命令。这次它奏效了。
尤其是在远程从您自己的桌面运行,而不是直接在数据库服务器内运行时,SSMS可能是导致分离数据库延迟的原因。由于某种原因,SSMS可能无法断开与数据库的任何现有“连接”。
我们发现,当我们直接从数据库服务器本身执行操作时,该过程几乎是瞬间完成的。实际上,它终止了我自己桌面上的SSMS会话的尝试,并且“接管”并分离了数据库。
这里没有提出其他建议有效。
谢谢
在我的情况下,我停止了Tomcat服务器。然后数据库立即离线了。
sp_who2
命令以查看正在使用数据库的进程,并使用kill <PID>
命令停止它们。 - Eric Kigathi