是否可以将MS SQL-Server设置为在表变得过大时从表中删除最旧的行?如果没有,我应该使用某种触发器,还是应该在应用程序端进行定时事件?
我的情况是我刚刚为Web应用程序实现了日志记录解决方案。记录大量信息是一项要求,因此数据库在一年左右的时间内会变得太大,我觉得没有人可以维护数据库。寻找这个问题的最佳解决方案。
答案 0 :(得分:3)
我建议您在某处(存储过程,配置表等)定义一个业务规则,而不是试图提前确定太大的业务规则,而该业务规则可以设置为控制要保留多少天的日志记录。
然后,您可以安排作业每晚通过SQL Server运行,该作业将删除早于指定条件的所有日志记录。
通过这种方式,您和您的用户将准确了解日志记录系统的内容(即您只能访问日志文件30天)。
如果将其与常规备份策略结合使用,则在需要较旧记录的情况下,可以从备份中检索它们。
答案 1 :(得分:0)
您可以使用资源调控器来测量资源使用情况,或者定义检查数据库文件大小的作业,然后调用将从数据库表中删除数据的SP。