我正在使用 SQL Server 2017 并尝试使用时态表,以便跟踪数据的历史更改。我以前从未使用过时态表,但过去我用传统表创建了许多 ETL 流程,并试图了解如何优化将数据加载到最终表中。传统上,当我编写 ETL 时(当我说传统时,我的意思是当我不使用时态表时),为了提高性能,我通常会删除表上的所有索引,然后批量加载我拥有的 1000 万左右的记录最终表,加载完成后,我将索引重新应用于表。
我想知道是否可以使用临时表来执行此操作?在使用临时表加载或更新数据时,为了保留表的历史记录,似乎我需要有一个主键。但是,如果我无法删除索引,那么在批量加载时我似乎会受到性能影响,对吧?如果在使用临时表历史记录时不能删除索引,如何减少加载表的时间?