【发布时间】:2016-02-10 21:26:08
【问题描述】:
我们的 SQL 服务器 (2005) 上存在一些驱动器空间问题,我刚刚对 sys.allocation_units 表运行了一些查询,发现我们有 26GB 的数据库邮件附件。显然,我们只是在我们的msdb 中隐藏了这几年,没有进行任何清理。
所以我尝试使用sysmail_delete_mailitems_sp,但我们正在填写我们的日志并且它达到了我们的空间限制。我查看了这个 sys sproc,它实际上正在运行
DELETE FROM sysmail_allitems
带有一些参数和错误处理。这是我假设从 sysmail_xyz 表的集合中删除的系统视图。
我们不需要任何这些旧邮件数据。我们邮寄的所有内容都已经记录并存档在我们的应用程序层中。我可以跑吗
TRUNCATE TABLE sysmail_allitems
这是一个视图,但它正在被删除,所以我想知道我是否也可以截断。如果没有,也许我可以
TRUNCATE TABLE sysmail_attachments
但我担心我会孤立一些会破坏我的系统的东西。有什么建议吗?
【问题讨论】:
-
离题,不是编程问题。试试 DBA 网站。
-
AFAIK 你不能截断视图。
-
您不能截断视图。如果您截断引用 6 个表的视图,它将如何工作?它会截断哪些表?您必须批量删除这些数据,以免日志文件过载。
标签: sql sql-server sql-server-2005 database-mail