许多应用程序累积二进制灰尘 - 随着时间积累的记录,永远不会看到白天的光。我们的应用程序会保存聊天记录,并且只显示最近5天的此类记录。一段时间后运行清理操作是否是一个好主意,将这些旧记录移动到“历史记录”表中。历史表将永远不会被使用,只是允许我们运行内部统计数据,同时(我认为)在主表中剩余的记录上实现更好的性能。另外,如果我们建立一个历史表,那么我们是否需要复制我们的表,或者是否存在隐藏的MS SQL函数,它会自动创建“影子表”。你如何处理旧记录?
2
A
回答
1
没有MS SQL函数会自动创建这样的影子表。它与分区密切相关,但它确实会将存储分割(快速/慢速),同时仍将数据保存在一个表中。
你在找什么是直接存档和清除。一个简单的策略是夜间任务
- 更新静态查找表(即主表引用)历史表
date < getdate()-6
- 移动记录
- 删除被感动
如果记录此表有其他表的外键链接to
,您会发现这些表不太可能需要清除,除非它们太快增长(很少)。另一方面,如果其他表格具有FK,则这是另一回事。在这种情况下,您必须移动所有依赖子项,然后移动主项,然后按相反顺序删除。
+0
我有点不清楚人们在实践中是如何做到这一点的。我是否创建了多个“存档”表格,其后缀是“ConversationsOld”,“LogsOld”,“UsersOld”等,然后将数据移入它们? – 2011-02-09 04:49:40
1
cyberkiwi对于“没有魔力”是正确的,他的推荐对于简单的数据是很好的。数据复杂时,归档变得复杂。您可能会发现在归档时需要对数据进行非规范化处理,以便可以删除或修改原始行引用的数据。
相关问题
- 1. 你如何处理移动应用程序中的陈旧缓存记录
- 2. 你应该如何处理旧的SVN分支?
- 3. Hbase如何处理重复记录?
- 4. 如何停止处理异常记录?
- 5. 如何处理记录器服务
- 6. 你如何记录你的Less?
- 7. 你如何处理Zend_Paginator?
- 8. 你如何处理UIManagedDocument?
- 9. 如何处理你知道的结果集只有一条记录
- 10. 插入批处理记录
- 11. 检索旧记录
- 12. 如何通过postgresql上的新记录更改旧记录?
- 13. 如何处理旧访问日志?
- 14. 如何处理旧应用程序
- 15. 如何处理旧数据库?
- 16. 你如何集中ELMAH记录
- 17. 你如何记录匿名功能?
- 18. 你如何记录AngularJS指令?
- 19. Grails + Acegi:如何处理密码更新?记录与未记录的用户
- 20. 你将如何处理与NHibernate
- 21. 你如何处理更新刷新率?
- 22. 你会如何处理这个设计?
- 23. 你如何处理“一人多名”?
- 24. 你如何处理URL跳转?
- 25. 你如何编码批处理?
- 26. 你如何处理MVVM中的ComboBox SelectionChanged?
- 27. 你如何处理NHibernate中的并发?
- 28. 你如何处理DDD和EF4
- 29. 你如何处理特殊情况下
- 30. 你如何处理时区问题?
实际上,我对将数据移动到历史数据库存储的推荐流程非常感兴趣。我们有很多主键链接,这意味着大量的奇数位数据需要移动,我也相信大量使用“for”循环。似乎有点笨重。 – 2011-02-09 03:49:46