【问题标题】:Should I split my database into current year's data and all past year's data?我应该将我的数据库拆分为当年的数据和过去一年的所有数据吗?
【发布时间】:2019-03-24 18:07:13
【问题描述】:

我正在尝试配置 SQL 服务器以尽可能高效地运行,同时保持干净的数据库开发标准。我有包含数百万条记录的表,有时必须在一个 Tableau Reports 查询中加入 5 个以上的表。

我的问题是,复制我目前使用的数据库并将过去季节的所有数据移入其中是否会更有效,因为这些数据很少用于报告中。因此,我当前的数据库将只有 FY2018 数据,而历史数据库将包含 FY2017、FY2016、FY2015 和 FY2014。

这值得麻烦和潜在的维护麻烦吗?我不知道它是否值得,或者在没有低效查询的情况下不需要。

谢谢!

【问题讨论】:

  • Consider partitioning 并在考虑将这些数据放入冷存储之前进行适当的索引。虽然,如果它真的“很少使用”,那么将它隐藏在另一张桌子上并不是那么可怕。称之为“归档”;)准备好明年将 2018 年放在同一张桌子上。只要这看起来不是太多的维护,那么它是合理的。

标签: sql database tsql partition


【解决方案1】:

没有。年底做什么?

你应该做的是在年份上创建一个索引,然后当他们用户在年份上设置一个标准时(例如 = 当前年份),它的运行速度就像它被拆分一样快。

【讨论】:

  • 谢谢霍根!在这种情况下,我将采用索引方法。
  • 嗨,Hogan,与分区相比,索引是否有可能会降低 JOIN 和 WHERE 语句的 SQL 性能?
  • @Mitchatwork ——好吧,当你有一个索引时,你必须对插入进行操作——所以如果你的数据库中有很多插入,这可能是个问题。此外,如果您不定期运行统计信息并且您的数据形状发生变化,这可能会导致索引和编译器做出错误的选择。 -- 可能更多,但这是我想到的前两种方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 2022-11-17
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 2011-12-13
相关资源
最近更新 更多