我经常在我的 OWB 映射中将数据暂存到表中,因为它提高了性能,而不是等到映射结束才将数据放入表中。我在这些临时表上放置了一些索引,以与我的 JOINER 中的 WHERE 子句相吻合,以试图进一步加快速度。但是,我是在踢自己的脚吗?这些中间表上的索引会对加载性能产生负面影响吗?
问问题
309 次
2 回答
2
这完全取决于您的情况。
从理论上讲,拥有索引会对插入产生负面影响。但是你必须考虑权衡。
例如; 如果临时表在 ETL 周期中只加载一次并且被多次读取,并且您创建了改进选择/连接的索引,那么您肯定会从索引中受益。
通常,在每个 ETL 周期中都会清除并重新加载暂存表。在这种情况下,应该经常重建索引。
还应验证有关索引的统计信息。
于 2012-12-04T08:01:36.953 回答
0
好吧,这没有规则,你应该测试它。只需确保映射将使用您创建的索引并定义映射源表的提示。该表中的 INSERT 肯定会更慢,但 SELECT 可能会快得多,并且您将获得良好的最终结果。此外,如果您有少量记录,则不要使用索引,只需使用 USE_HASH。
米娜
于 2011-12-18T08:25:47.747 回答