如何提高SSIS中的数据传输速度
How to Improve the speed of the data transfer In SSIS
我有一个 table,它有大约 700,000 行。它有 11 列,其中一列是 varchar(max)) 列,它有 xml 数据。
现在我必须将这些数据从一台服务器传输到另一台服务器。我在 SSIS 包上做了以下操作。
我编写查询以在单个数据流任务中获取前 100,000 个数据流任务,每 100,000 个我添加一个数据流任务,并将 defaultbuffersize 修改为 (10 MB - 100 MB) 并将 defaultbufferRow 修改为低和高,
但是它查询 table 需要很长时间,但是它写入数据的速度如此之快。我尝试删除 varchar(max) 列,它甚至不需要 5 分钟。
因此添加 varchar 列大约需要 13 个小时。
在我也通过数据集尝试使用 .Net 代码后,bulkinsert 并使用 TPL 来利用我的所有处理器。但我看不出有任何显着差异。
如有任何帮助,我们将不胜感激。
700000 不是很多行。
你真的需要 varchar(max)
IE。 len() 是否超过 8000?
如果不是 - 将其转换为 varchar(8000) 则缓冲区大小将更小。
网络 I/o 会是个问题吗?
例如,您是否将数据从我们转移到欧洲然后又转移回来。在这种情况下,将您的网络数据包大小增加到 33k。
在现代硬件上,传输此数据的时间不应超过 1 小时。我希望有 10 分钟!
一个好的测试是转移到没有索引或约束的空 table 多长时间。
如果这很快,那么您应该看到问题所在。
我有一个 table,它有大约 700,000 行。它有 11 列,其中一列是 varchar(max)) 列,它有 xml 数据。 现在我必须将这些数据从一台服务器传输到另一台服务器。我在 SSIS 包上做了以下操作。 我编写查询以在单个数据流任务中获取前 100,000 个数据流任务,每 100,000 个我添加一个数据流任务,并将 defaultbuffersize 修改为 (10 MB - 100 MB) 并将 defaultbufferRow 修改为低和高, 但是它查询 table 需要很长时间,但是它写入数据的速度如此之快。我尝试删除 varchar(max) 列,它甚至不需要 5 分钟。
因此添加 varchar 列大约需要 13 个小时。
在我也通过数据集尝试使用 .Net 代码后,bulkinsert 并使用 TPL 来利用我的所有处理器。但我看不出有任何显着差异。
如有任何帮助,我们将不胜感激。
700000 不是很多行。 你真的需要 varchar(max) IE。 len() 是否超过 8000? 如果不是 - 将其转换为 varchar(8000) 则缓冲区大小将更小。 网络 I/o 会是个问题吗? 例如,您是否将数据从我们转移到欧洲然后又转移回来。在这种情况下,将您的网络数据包大小增加到 33k。 在现代硬件上,传输此数据的时间不应超过 1 小时。我希望有 10 分钟! 一个好的测试是转移到没有索引或约束的空 table 多长时间。 如果这很快,那么您应该看到问题所在。