許多應用程序累積二進制灰塵 - 隨着時間積累的記錄,永遠不會看到白天的光。我們的應用程序會保存聊天記錄,並且只顯示最近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. 你如何處理亞馬遜Kinesis記錄重複?
- 3. 處理記錄
- 4. 你應該如何處理舊的SVN分支?
- 5. 你如何記錄你的Less?
- 6. 如何處理inputsplit的多行記錄?
- 7. 如何處理未分配的記錄
- 8. Hbase如何處理重複記錄?
- 9. 如何處理記錄器服務
- 10. 如何停止處理異常記錄?
- 11. 如何處理的異常記錄
- 12. 你如何處理UIManagedDocument?
- 13. 你如何處理Zend_Paginator?
- 14. 如何處理相關記錄的刪除記錄?
- 15. 如何在用戶選擇「全部」記錄時處理記錄?
- 16. 如何處理你知道的結果集只有一條記錄
- 17. ,你必須處理HTML標記?
- 18. 處理大量記錄
- 19. Python的處理SQL記錄
- 20. 堅持處理記錄
- 21. Android通話記錄處理
- 22. 異常處理(或記錄)
- 23. 處理/節奏記錄
- 24. VXML記錄處理dtmf termchar
- 25. 記錄預處理語句
- 26. DBInputFormat多個記錄處理
- 27. 插入批處理記錄
- 28. Underscore.js記錄處理容量
- 29. 檢索舊記錄
- 30. 獲取舊記錄
實際上,我對將數據移動到歷史數據庫存儲的推薦流程非常感興趣。我們有很多主鍵鏈接,這意味着大量的奇數位數據需要移動,我也相信大量使用「for」循環。似乎有點笨重。 – 2011-02-09 03:49:46