2011-12-14 35 views
0

A)祖父 - 父子歸檔有可能嗎?比如我們想在任何時候都有以下預先計算,而不是其他預先計算:SQL Server:祖父 - 父子歸檔

  • 上週的每日總計
  • 以前的5-6周的每週總計
  • 以前各月的月度共計

請注意,我們不需要想要每天總計2個月前的例如。我們希望每日總數被刪除。

對於此目的,索引視圖是否足夠好?我們希望所有的字段都要進行預先計算和存儲。

B)我們希望有一些像StackExchanges(通常是Wikis)版本的功能。是否有方法可以在生產環境中以某種方式歸檔舊版本,並保持較新版本的東西更容易獲得?我們一直在尋找Partitioning,但它似乎並沒有處理如此複雜的情況(我們不希望X日期之前的所有帖子都被分區,而不是我們需要比最新版本更舊的所有版本)

這些問題的最佳實踐是什麼?

+1

索引視圖不會成爲一個選項,因爲您的定義依賴於當前的日期(即非確定性值) – 2011-12-14 11:29:02

回答

1

答:您正在描述具有不同保留期/嚴重性的時間序列數據的存儲,SQL Server本身不提供任何形式的功能。你當然也可以自己構建這個策略很容易,幸運的是你有在開源項目中的幾個很好的例子指導:

  1. RRD Tool - 時間序列數據庫和圖形庫。 -
  2. Graphite通過RRD工具的啓發,通過

乙建:它很難在這樣的籠統說話,但也許你可以在你的表,其中0始終反映最新版本保持版本列。每次你促銷一個新版本你降級所有其他版本通過增加此值。如果版本隨着版本的增加而增加,則可以在確定性值(版本= 0)上創建篩選索引,使其獲得當前版本的性能非常高。
然後,您可以根據版本而不是日期清除數量。只需delete yourTable where Version > 5。分區方案也可以使用這種方法。

+0

比從未更好的遲到:) – 2012-08-08 01:43:33