0

设想

我正在使用 Visual Studio 2019 将数据从平面文件(txt 文件)加载到 SQL Server 2019 数据库表中。这些是临时表。

我有 10 个文本文件,需要为每个文件创建一个包,以将数据加载到专用于每个文件的 10 个不同表(暂存)中。

这是我的任务的要求。

我能够成功地做到这一点。除了文本文件有大约 650 万条记录并且将数据加载到数据库表中的包执行时间为 2 分 30 秒的包之外,所有包的执行时间都相当快。

对于这个任务,我使用了一个数据流任务,其中包含:

  1. 平面文件源 - 这包含必须从中加载数据的文件。
  2. OLE DB 目标 - 用于必须加载数据的数据库表。(附截图供参考)

在此处输入图像描述

我希望达到什么目标?

我想提高这个包的性能以尽可能减少执行时间。

4

2 回答 2

1

如果您希望在不进行任何转换的情况下将平面文件插入到 SQL Server 表中。您可以使用SSIS BULK INSERT Task。或者只是您可以使用SQL BULK INSERT命令。例子:

BULK INSERT AdventureWorks2012.Sales.SalesOrderDetail
   FROM 'f:\orders\items.csv'
   WITH
      (  
         FIELDTERMINATOR =';'
         , ROWTERMINATOR ='\n'
      );
于 2020-12-17T19:11:42.657 回答
0

非常感谢您的意见和建议。它极大地帮助了我。

我对数据流属性的不同组合进行了迭代,例如 DefaultBufferSize、DefaultBufferMaxRows 和来自“平衡数据分配器”的输出路径数(附截图)。现在包在 15 秒内执行。 在此处输入图像描述

于 2020-12-19T08:44:59.973 回答