2

我有一个作为 RealTimetable 的表和另一个作为 HistoryTable 的表。现在 RealTimetable 和 HistoryTable 具有相同的结构。我们需要一个过程来将数据从 RealTimetable 复制到 HistoryTable,然后每天从 realtimetable 中删除数据。由于实时表不能变得太大(它会导致我们的应用程序大幅减速),但我们需要保留实时表中的所有数据以用于记录和历史记录,因此我们将这些数据保留在 HistoryTable 中。

在这种情况下,触发器和复制不是最好的解决方案,因为实时表每天插入超过 60,000 到 100,000 次,设置其中任何一个都会导致数据库的开销很大,不是吗?

我想只有一个 sp 每天将不在 HistoryTable 中的数据从 realtimetable 插入到 HistoryTable 中,然后在 15 分钟前的数据插入过程之后从 realtimetable 中删除数据(因为数据可能会被写入插入过程和删除过程之间的实时表)。我们不想丢失这些数据..但是这样做有点肮脏..

请向我建议适用于我的场景的替代解决方案..

4

1 回答 1

0

没有一种干净的方法可以做到这一点,基本上你是在乱搞,因为你不能将所有数据保存在一个表中。

我会先从简单的开始,然后从一张桌子转到另一张桌子,然后看看这项工作做得如何,然后再开始为您还不知道存在的问题构建复杂的算法。

无论如何,我不会使用触发器来填充历史记录。历史表上的缓慢报告会阻止实时插入,这可能是您想要的最后一件事。

您是否考虑过 sql 是否是持久化实时数据的最佳选择?如果你“只是”在那里敲打东西,这样你就不会丢失它,那么你从 sql 中得到的东西很少。

于 2013-01-02T23:50:12.597 回答