在我的映射中,需要很长时间才能将行提取到目标表,但它会在一分钟内从.CSV文件中读取这些行。在此映射中,一个源是一个平面文件,另一个源是一个包含来自目标的数据的表这里我们根据对平面文件和源表(来自目标表的数据)的数据进行比较,创建一个逻辑来更新或删除或插入目标。虽然看到sesion日志,它会在一分钟内读取平面文件中的数据但是它会取出那些数据到目标,以taget 9行/秒吞吐量。这里使用unix脚本创建目标表,即CREATE TABLE STG_LM_INSTITUTION as (SELECT * FROM LM_INSTITUTION);
此映射中的目标是STG_LM_INSTITION。这是最终目标的副本(LM_INSTITUTION)。我认为问题是由于在脚本中创建了taget表但我不确定。任何人请帮我解决这个问题。源平面文件有2L行。我使用2L行运行此映射。在11小时后,它仅将1L记录提取到目标中。但是在使用500rws运行时,它仅在一分钟内将记录提取到目标。
答案 0 :(得分:0)
SQL_LM_INST_SEQ
从Oracle序列中检索PK值并且成本很高,因为对于每个插入的行,需要往数据库的往返才能获得新的ID。
使用序列生成器转换 - Integration Service将自行生成ID。
答案 1 :(得分:0)
我发现您正在使用更新策略转换。 你想更新目标吗? 可能你必须在目标表表上构建正确的索引。