最近数据库空间很紧张,增加了50MB后,很快又满了。
分析了一下,发现EmailQueue这表中有几万条记录(积累了很多发不出去的邮件)
先尝试用delete form [dbgdbg].[dbgdbg_f].[cs_EmailQueue]来删除,但总是出错:
Msg 9002, Level 17, State 4, Line 2数据库 \'dbgdbg\' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
原因是delete语句本身需要记录日志,而日志表可能空间紧张。
后来想到用truncate:
/****** Script for SelectTopNRows command from SSMS ******/TRUNCATE TABLE [dbgdbg].[dbgdbg_f].[cs_EmailQueue]go
结果很顺利,成功删除,而且执行速度非常快