我错误地在一张包含数百万行的表中执行DELETE FROM
。
现在sqlservr.exe
正在使用计算机中的所有内存,当我尝试通过SQL Server Management Studio(SSMS)连接到它时,它不会响应。
我试图杀死这个过程;但它会死掉,然后再次消耗所有RAM。
数据库托管在我的开发PC上。
如何让SQL Server运行?
答案 0 :(得分:4)
重新启动SQL Server时,它将在配置为在启动时加载的所有数据库上运行“恢复”过程。你需要等待恢复完成;此时行可能仍在数据库中。一句建议,等待SQL Server做它的事情;永远kill
sqlserver.exe
进程等等。这只会延长你的痛苦。运行恢复可能需要1个多小时,具体取决于您的硬件,数据库大小,VLF数量等等。耐心等待!或者不要,只是恢复昨晚的备份。你有备份,对吗?
此时你需要删除行;或许TRUNCATE TABLE
命令对此有帮助。
您可以检查SQL Server错误日志;这将是SQL Server安装目录中名为“ERRORLOG”的文件(很可能,假设在安装期间选择了默认值)。这应该会显示恢复进度已经开始,以及何时完成。
您还可以使用“专用管理员连接”或“DAC”使用sqlcmd.exe
连接到SQL Server,但这超出了此答案的范围。