我们的SQL服务器(2005)上遇到了一些驱动器空间问题,我只是在sys.allocation_units
表上运行了一些查询,发现我们有26GB的数据库邮件附件。显然,我们刚刚在我们的msdb
中将其藏匿了几年而没有进行任何清理。
所以我尝试使用sysmail_delete_mailitems_sp
,但我们正在填写我们的日志并且它已经达到我们的空间限制。我查看了这个sys sproc,它正在做的就是运行
DELETE FROM sysmail_allitems
带有一些参数和错误处理。这是一个系统视图,我假设从sysmail_xyz表的集合中删除。
我们不需要任何此旧邮件数据。我们邮寄的所有内容都已记录并存档在我们的应用程序层中。我可以跑吗
TRUNCATE TABLE sysmail_allitems
这是一个观点,但它正在删除,所以我想知道我是否也可以进行TRUNCATE。如果没有,也许我可以
TRUNCATE TABLE sysmail_attachments
但是,我担心我会孤立一些会破坏我系统的东西。有什么建议吗?
答案 0 :(得分:2)
也许你可以删除大块?
msdb
WHILE
循环以执行该日期sysmail_delete_mailitems_sp
的{{1}},然后递增该日期这样你就不会填满日志......