我正在使用源数据更新到目标表。 源文件是excel,目标文件是sql server表。 在源文件中,我确实有一个与项目相关的特定数据,而在目的地表中,我确实有多个项目。数据在每个项目中包含数百万行。因此,源和目标的大小非常大。
我正在使用查找转换来比较数据并进行相应的更新。问题在于,由于目标表的大小非常大,将整个数据加载到查找缓存中需要花费大量时间。所以有什么办法可以只加载源文件的项目的数据,例如(从projectid = sourcetable.projectid的表中选择*)
请告知
谢谢
答案 0 :(得分:0)
将Excel数据加载到登台表中,然后使用登台表和目标表通过SQL脚本运行所需的更新。与在SSIS数据流内部相比,运行同一服务器上的表之间的SQL查询几乎总是可以更快,更高效地运行数据转换。
答案 1 :(得分:0)
我通过Cache Connection Manager实现了这一目标。使用查找转换之前,将查找数据加载到缓存文件中。稍后在“查找转换”中,我使用了此缓存连接管理器而不是OLEDB连接管理器。
另一种选择是使用Full Cache,并使用参数获取表数据,而不是使用DFT中的表达式读取整个表数据。