database - 将SQL Server数据库脱机时的极端等待时间




sql-server-2005 performance (10)

为了解决这个问题,我停止了在IIS中连接到数据库的网站,并立即将'冻结的''take db offline'面板解冻。

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

一些网站建议开放连接到数据库导致这种速度下降,但使用这个数据库的唯一应用程序是我的开发机器的IIS实例,服务停止 - 没有更多的开放连接。

什么可能导致这种放缓,我能做些什么来加速它?


任何时候遇到这种类型的事情时,都应该考虑事务日志。 带有回滚立即数的alter db statment表明了这种情况。 看看这个: http://msdn.microsoft.com/en-us/library/ms189085.aspx : http://msdn.microsoft.com/en-us/library/ms189085.aspx

在检查点等等。你需要决定日志中的事务是否值得保存,然后选择相应的模式来运行你的数据库。 您没有理由不得不等待,也没有理由丢失数据 - 您可以同时拥有这两个数据。


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


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

在我的情况下,有一个网站与数据库有开放连接。 这种方法很简单:

  1. 右键单击数据库 - >属性 - >选项
  2. Database Read-Only设置为True
  3. 在对话框中单击“是”,警告SQL Server将关闭到数据库的所有连接。
  4. 重新打开选项并将其恢复为只读状态
  5. 现在尝试重命名数据库或使其脱机。

在我的情况下,我停止了Tomcat服务器。 然后数据库立即脱机。


在我的情况下,我在执行此操作之前查看了数据库中的一些表格。 我的用户帐户在SSMS中持有到此数据库的活动连接。 一旦我从SSMS中的服务器断开连接(使'打开数据库脱机'对话框打开),操作成功。


对我来说,我只需进入工作活动监视器并停止正在处理的两件事情。 然后立即脱机。 就我而言,尽管我知道这两个过程是什么,可以阻止它们。


就我而言,在等待完成之后,我没有耐心,只是关闭了管理工作室。 在退出之前,它显示成功消息,db处于脱机状态。 这些文件可以重命名。


执行存储过程sp_who2

这将允许你看看是否有任何阻塞锁定。杀死他们应该修复它。


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





performance