1

我正在设计一个 ASP.NET MVC Web 应用程序,该应用程序将用于查找人们的位置并映射他们从不同应用程序的去向。该系统有可能为每个用户提供大约 3 个月前的大量位置数据。我现在正试图决定如何为此设计一个 MS SQL 2008/2012 数据库。

天真地,会有一个位置更新表,其中包含以下列:

标识(整数)

用户 ID(整数)

纬度(双)

经度(双)

速度(整数)

日期发送(日期时间)

根据我的阅读,似乎对表进行分区是实现此目的的最佳方法。如果这是真的,我对如何自动将数据划分为“今天”、“本周”、“上周”、“上个月”等分区一直到拥有仅用于备份的所有内容的大型存档。

如果我可以提供任何可能有帮助的技术要求,请告诉我制定策略。我感谢一些数据库专家的任何见解。

4

1 回答 1

0

注意:不确定您是否知道这一点,但表分区是一项昂贵的企业功能。您应该确保数据量证明升级是合理的。

a)您希望根据逻辑分组对表进行分区以进行查询。除非您的查询具有这些粒度,否则“今天”、“本周”、“上周”、“上个月”并没有真正意义。更有可能是跟踪习惯和习惯的变化。例如。这个月,上个月,3个月前。然后在第 4 个月末,您将切换出具有 3 个月大数据的分区(现在是 4 个月大的数据)

b) 表分区基本上将分区视为整体的一部分。一旦你设置了分区函数和模式,你就不需要担心移动它等等。例如,如果您按月对它进行分区,保留 3 个月的数据,您将设置 5 个文件组。1 表示下个月,3 表示“当前”月份,1 表示“旧”月份。

c)我强烈建议您不要保留“一切”的历史大型档案,除非您需要它。假设这 3 个应用每 10 分钟发送一次 GPS 数据?那就是每人每天 144 次插入或每月 4320 次。或每年 51840。我提到这是每个人的权利吗?

我认为您需要先回过头来考虑一下需求:您要为多少人设计它。你想从存储这些数据中得到什么数据......然后相应地设计数据库,然后看看你的设计和要求是否适合企业版。

于 2014-04-09T22:53:31.407 回答