自动管理 Sql Server 数据库大小
本文关键字:数据库 Server Sql 管理 | 更新日期: 2023-09-27 18:34:47
有 2 个 .NET 服务使用 2 个 SQL Server 数据库。我目前正在使用 SQL Express,因此最大数据库大小是一个问题。
当大小接近 10GB 限制(或某些记录限制(时,我想自动删除最旧的 X 条记录量以释放一些空间。
这不是一个生产环境,我真的不需要旧数据,我只想保持数据"新鲜"。
这是否应该在服务级别完成?我可以修改我的服务以定期检查空间使用情况并执行手动"清理"(无论是删除、存档等(。但是,我不确定如何在SQL级别执行此操作。
由于您使用的是 SQL Express,因此您需要按某个计划在服务级别执行此操作。 首先需要从要从中清除数据的表中删除行。 像这样:
delete BigOleTable where LoggedDate < dateadd(yy,-1,getdate())
这将摆脱超过一年的东西。
然后,您将需要收缩数据库..因此,这取决于您的恢复模式。 如果处于完全恢复状态,则需要备份事务日志。然后像 Tanner 上面提到的那样发布一个收缩数据库。
可以创建执行此操作或更好地使用 SSIS 的作业(请参阅此处:http://technet.microsoft.com/en-us/library/ms181153%28v=sql.105%29.aspx(。
您可以使用此 http://technet.microsoft.com/en-us/library/ms188776.aspx 过程查询已用空间,如果超过论文保留,则可以删除数据。