源和目标数据量巨大的ssis查找转换

时间:2018-08-03 04:12:30

标签: tsql

我正在使用源数据更新到目标表。 源文件是excel,目标文件是sql server表。 在源文件中,我确实有一个与项目相关的特定数据,而在目的地表中,我确实有多个项目。数据在每个项目中包含数百万行。因此,源和目标的大小非常大。

我正在使用查找转换来比较数据并进行相应的更新。问题在于,由于目标表的大小非常大,将整个数据加载到查找缓存中需要花费大量时间。所以有什么办法可以只加载源文件的项目的数据,例如(从projectid = sourcetable.projectid的表中选择*)

请告知

谢谢

2 个答案:

答案 0 :(得分:0)

将Excel数据加载到登台表中,然后使用登台表和目标表通过SQL脚本运行所需的更新。与在SSIS数据流内部相比,运行同一服务器上的表之间的SQL查询几乎总是可以更快,更高效地运行数据转换。

答案 1 :(得分:0)

我通过Cache Connection Manager实现了这一目标。使用查找转换之前,将查找数据加载到缓存文件中。稍后在“查找转换”中,我使用了此缓存连接管理器而不是OLEDB连接管理器。

另一种选择是使用Full Cache,并使用参数获取表数据,而不是使用DFT中的表达式读取整个表数据。