( A)是否可能有祖父-父子档案?例如,我们希望在任何时候都预先计算以下内容,而没有预先计算的其他内容:
请注意,我们不希望每天的总数是两个月前的。我们希望每天的总数被删除。
索引视图在这方面是否足够好?我们希望预先计算和存储所有字段。
B)我们希望有一些特性,比如StackExchanges (以及一般的Wiki)版本控制。是否有办法在生产环境中以某种方式将旧版本存档,并使较新版本的东西更容易获得?我们一直在研究分区,但它似乎没有处理如此复杂的场景(我们不希望rather之前的所有帖子都被分区,而不是需要所有比最新版本更早的版本)。
关于这些问题的最佳做法是什么?
发布于 2012-08-08 01:42:10
答:您正在描述具有不同保留期/粒度的时间序列数据的存储,SQL Server不提供任何本机形式的特性。当然,您可以轻松地自己构建这个策略,幸运的是,您在开源项目中有几个很好的示例可供指导:
B:用这样笼统的术语来说很难说,但也许您可以在表上保留一个version列,其中0总是反映最新的版本。每次升级新版本时,都会通过递增此值来降低所有其他版本的级别。随着版本越老,版本越多,您就可以在确定性值(Version = 0)上创建一个过滤索引,从而使获取当前版本的性能非常好。
然后,您可以根据以前的版本数而不是日期进行清除。只有delete yourTable where Version > 5。分区方案也可以使用此方法。
https://stackoverflow.com/questions/8502890
复制相似问题