【问题标题】:Copy data from a large table on a test server to a table on production server in SSIS将数据从测试服务器上的大表复制到 SSIS 中生产服务器上的表
【发布时间】:2021-10-11 16:09:52
【问题描述】:

我想将数据从测试服务器中的表复制到生产服务器中的表。该表中有 5000 万行。我计划这样做的方法之一是执行两项任务:

  1. 使用数据流任务将数据从源表导出到 CSV 文件。
  2. 使用批量插入流任务读取 CSV 文件并将其插入到目标表中。

在 SSIS 中有没有更好的方法来做到这一点?谢谢!

【问题讨论】:

  • 存放这些数据库的服务器是否在同一个网络上?您可以只运行一个数据导入任务(尽管它需要很长时间才能完成)
  • 有很多选择,但我们需要知道目标和约束。任何问“更好”或“最好”的问题都不能解释这些限制和目标。例如,它需要是 SSIS 吗?使用 BCP 原生格式可能会更快,这是一个简单的命令行,不需要字段映射。这支持数据类型的往返,并且没有文本文件所具有的分隔问题。另一种方法是备份/恢复到本地数据库并进行跨数据库插入/选择。

标签: sql sql-server tsql ssis etl


【解决方案1】:

有许多方法可以在两台服务器之间传输数据。 SSIS 并不总是首选。注意到 5000 万行并不总是被视为一个大型数据集;这取决于服务器资源、列数据类型和其他因素。

导入/导出数据的最简单方法是使用SSMS Import/Export wizard。另一种方法是使用 BCP 作为 cmets 中提到的@Nick.McDermaid。

如果您的物理资源有限,并且需要使用 SSIS 执行此操作,您可以尝试按照以下文章中的说明批量加载数据:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多