Sql 如何高效地刷新表数据
我有几张分析表,每隔几天就会刷新一次。所谓刷新,我的意思是可能有一些新记录,一些记录需要删除,一些记录需要更新,并且没有特定的标识符 因此,我有以下选择: 对于每次刷新,截断整个表并重新加载数据。但如果在新数据加载期间发生任何故障,那么表数据将被破坏,所有分析将显示错误的数据。 另一种选择是在所有分析表中保留一个刷新id,并且在从分析表读取数据时使用最新的刷新id。但这种方法的主要问题是连接和过滤。我们有跨分析表的连接,所以每个连接都应该与刷新连接,否则获取的数据将是错误的,这种方法容易出错。 我们可以在这些表上创建一个具有动态过滤器的视图吗?在查询这些视图时,我将使用最新的刷新id作为过滤器。Sql 如何高效地刷新表数据,sql,database,Sql,Database,我有几张分析表,每隔几天就会刷新一次。所谓刷新,我的意思是可能有一些新记录,一些记录需要删除,一些记录需要更新,并且没有特定的标识符 因此,我有以下选择: 对于每次刷新,截断整个表并重新加载数据。但如果在新数据加载期间发生任何故障,那么表数据将被破坏,所有分析将显示错误的数据。 另一种选择是在所有分析表中保留一个刷新id,并且在从分析表读取数据时使用最新的刷新id。但这种方法的主要问题是连接和过滤。我们有跨分析表的连接,所以每个连接都应该与刷新连接,否则获取的数据将是错误的,这种方法容易出错。
有没有更好的方法将数据刷新到分析表中?请记住,它应该处理任何错误场景,并且不容易出错。或者,我经常使用的选项: 在其他位置创建表的新版本。 验证结果。 将活动表交换为新版本。 交换可能涉及重命名表或截断并加载原始表。通常,原始内容保存在其他地方 这种方法非常方便,尤其是当创建整个表的逻辑很复杂,难以表示为增量更改时。当表格不可用时,它还可以最大限度地减少停机时间 当您需要更多的最新数据且批处理无法工作时,您希望进行增量更改—无论是因为时间、大小还是成本。许多数据库支持物化视图或复制,从而简化了此过程