我需要将数据 (>> 1 GB) 导入 MS-SQL-Server。出于多种原因,我需要将此数据导入临时表(而不是直接导入目标)。从登台开始,数据被加载到目标表中。暂存表中的数据永远不会再次使用。我有几种方法:
- 将数据加载到 staging stable 中,将此数据标记为新数据,仅将标记的数据加载到目标中,取消标记数据。
- 删除 staging 中的所有数据,将数据加载到 staging 表中,将所有数据加载到目标中。
- 截断登台表,加载到登台,加载到目标
- 删除临时表,创建临时表,加载到临时表,加载到目标。
- 删除临时数据库,创建临时表,加载到临时表,加载到目标。
如果解决方案不受您的服务器角色的限制:推荐的解决方案是什么?哪个最健壮?
如果您不再需要数据,解决方案 1 很可能是无稽之谈。与 1 和 2 相比,解决方案 3 的性能要好得多。但是解决方案 4 和 3 之间呢?实际上,我更喜欢解决方案 5,因为我可以在加载过程中更改暂存过程中的几乎每个参数,但您需要删除和创建数据库的权限。这对于加载过程来说是相当多的。所以在大多数情况下,我使用 drop 并重新创建临时表。但这是推荐的方式吗?